/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/agent-widget/src/SprykerShop/Yves/AgentWidget/Theme/default/components/molecules/agent-navigation/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.agent-navigation__dropdown > .agent-navigation__dropdown-item[position-right] {
  left: auto;
  right: 0;
}
.agent-navigation__name {
  position: relative;
  padding-right: 1.5rem;
}
.agent-navigation__caret {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/AgentWidget/Theme/default/components/molecules/customer-list/customer-list.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.customer-list__container-item {
  cursor: pointer;
  padding: 0;
  font-size: 0.875rem;
}
.customer-list__container-item:hover {
  color: #E30613;
  text-decoration: underline;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/AgentWidget/Theme/default/components/organisms/agent-control-bar/agent-control-bar.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.agent-control-bar {
  position: relative;
  z-index: 401;
  background-color: #e7eaee;
  padding: 1.375rem 0;
}
.body-overlay--no-agent-user .agent-control-bar {
  z-index: 700;
}
@media only screen and (max-width: 549px) {
  .agent-control-bar__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    text-align: right;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartPage/Theme/default/components/molecules/cart-items-list/cart-items-list.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-items-list__title {
  background-color: #f0f0f0;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1.25rem;
}
.cart-items-list__title h5 {
  font-weight: 400;
}
.cart-items-list__title h5 b {
  font-weight: 500;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/cart-page/src/SprykerShop/Yves/CartPage/Theme/default/components/molecules/product-cart-item/style.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-cart-item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.product-cart-item__name {
  font-weight: 500;
  color: #666666;
}
.product-cart-item__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.product-cart-item__actions--spacingless {
  margin-top: 0;
}
.product-cart-item__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
@media only screen and (min-width: 770px) {
  .product-cart-item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.product-cart-item__col {
  margin-right: auto;
  margin-left: auto;
}
.product-cart-item__col:first-child {
  margin-left: 0;
}
.product-cart-item__col:last-child {
  margin-right: 0;
}
.product-cart-item__actions {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/comment-widget/src/SprykerShop/Yves/CommentWidget/Theme/default/components/molecules/comment/style.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.comment {
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #f0f0f0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/comment-widget/src/SprykerShop/Yves/CommentWidget/Theme/default/components/molecules/comment-form/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.comment-form__handlers {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/comment-widget/src/SprykerShop/Yves/CommentWidget/Theme/default/components/molecules/comment-thread-list/style.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.comment-thread-list {
  max-height: 16rem;
  overflow: auto;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/comment-widget/src/SprykerShop/Yves/CommentWidget/Theme/default/components/molecules/tag-list/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.tag-list__item {
  display: inline-block;
  margin: 0 0.5rem 0.5rem 0;
}
.tag-list__item-link {
  position: relative;
  display: inline-block;
  padding: 0.1rem 1.4rem 0.1rem 0.5rem;
  background-color: #9ff0e1;
  color: #1ebea0;
  cursor: pointer;
}
.tag-list__item-link:hover {
  text-decoration: none;
}
.tag-list__item-link::before, .tag-list__item-link::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  width: 0.6rem;
  height: 0.1rem;
  background-color: #1ebea0;
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
}
.tag-list__item-link::after {
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}
.tag-list__item-link--disabled {
  background-color: #8f8f8f;
  color: #777777;
  cursor: default;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  opacity: 0.5;
}
.tag-list__item-link--disabled::before, .tag-list__item-link--disabled::after {
  background-color: #777777;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-page/src/SprykerShop/Yves/CompanyPage/Theme/default/components/molecules/address-delete-message/style.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.address-delete-message__delete-title {
  color: #E30613;
}
.address-delete-message__delete-message {
  font-weight: 500;
}
.address-delete-message__address {
  color: #E30613;
}
.address-delete-message__action {
  margin-right: 0.5rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-page/src/SprykerShop/Yves/CompanyPage/Theme/default/components/molecules/business-unit-address-item/style.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
@media only screen and (min-width: 550px) {
  .business-unit-address-item__actions {
    text-align: right;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-page/src/SprykerShop/Yves/CompanyPage/Theme/default/components/molecules/business-unit-address-list/style.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.business-unit-address-list__list {
  max-height: 15rem;
  overflow-y: auto;
  border-top: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}
.business-unit-address-list__item--empty {
  background-color: #f0f0f0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-page/src/SprykerShop/Yves/CompanyPage/Theme/default/components/molecules/business-unit-chart-item/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.business-unit-chart-item .business-unit-chart-item {
  padding-left: 1rem;
}
.business-unit-chart-item__link {
  display: block;
  padding: 0.5rem;
  margin-bottom: 0.5rem;
  background: #f4f4f4;
  color: #333333;
  border-radius: 4px;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-page/src/SprykerShop/Yves/CompanyPage/Theme/default/components/molecules/business-unit-delete-message/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.business-unit-delete-message__delete-message {
  color: #E30613;
}
.business-unit-delete-message__business-unit {
  color: #E30613;
}
.business-unit-delete-message__action {
  margin-right: 0.5rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/company-user-agent-widget/src/SprykerShop/Yves/CompanyUserAgentWidget/Theme/default/components/molecules/company-user-list/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.company-user-list__container-item {
  cursor: pointer;
  padding: 0.5rem;
}
.company-user-list__container-item:hover {
  background-color: #f4f4f4;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-note-widget/src/SprykerShop/Yves/ConfigurableBundleNoteWidget/Theme/default/components/molecules/readonly-bundled-note/style.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.readonly-bundled-note__title {
  font-size: 0.875rem;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/configurator-button/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configurator-button {
  -webkit-transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  display: inline-block;
  padding: calc(0.25rem + 1px) calc(0.5rem + 1px);
  background-color: #E30613;
  border: none;
  border-radius: 0;
  color: #fff;
  text-align: center;
  cursor: pointer;
}
.configurator-button:hover, .configurator-button:focus {
  background-color: #b1050f;
  text-decoration: none;
}
.configurator-button:active {
  background-color: #E30613;
  text-decoration: none;
  -webkit-box-shadow: inset 0 2px 7px 0 #b1050f;
          box-shadow: inset 0 2px 7px 0 #b1050f;
}
.configurator-button--hollow {
  padding: 0.25rem 0.5rem;
  background-color: #fff;
  border: 1px solid #E30613;
  color: #E30613;
}
.configurator-button--hollow:hover, .configurator-button--hollow:focus {
  background-color: #fc9fa5;
}
.configurator-button--hollow:active {
  background-color: #fc9fa5;
  -webkit-box-shadow: inset 0 2px 7px 0 rgba(227, 6, 19, 0.7);
          box-shadow: inset 0 2px 7px 0 rgba(227, 6, 19, 0.7);
}
.configurator-button--expand {
  width: 100%;
}
.configurator-button--success {
  background-color: #1ebea0;
}
.configurator-button--success:hover, .configurator-button--success:focus {
  background-color: #17927b;
}
.configurator-button--success:active {
  background-color: #1ebea0;
  -webkit-box-shadow: inset 0 2px 7px 0 #17927b;
          box-shadow: inset 0 2px 7px 0 #17927b;
}
.configurator-button--success.configurator-button--hollow {
  background-color: #fff;
  border-color: #1ebea0;
  color: #1ebea0;
}
.configurator-button--success.configurator-button--hollow:hover, .configurator-button--success.configurator-button--hollow:focus {
  background-color: #9ff0e1;
}
.configurator-button--success.configurator-button--hollow:active {
  background-color: #9ff0e1;
  -webkit-box-shadow: inset 0 2px 7px 0 rgba(30, 190, 160, 0.7);
          box-shadow: inset 0 2px 7px 0 rgba(30, 190, 160, 0.7);
}
.configurator-button--warning {
  background-color: #fdbe36;
}
.configurator-button--warning:hover, .configurator-button--warning:focus {
  background-color: #fcae04;
}
.configurator-button--warning:active {
  background-color: #fdbe36;
  -webkit-box-shadow: inset 0 2px 7px 0 #fcae04;
          box-shadow: inset 0 2px 7px 0 #fcae04;
}
.configurator-button--warning.configurator-button--hollow {
  background-color: #fff;
  border-color: #fdbe36;
  color: #fdbe36;
}
.configurator-button--warning.configurator-button--hollow:hover, .configurator-button--warning.configurator-button--hollow:focus {
  background-color: #fff7e7;
}
.configurator-button--warning.configurator-button--hollow:active {
  background-color: #fff7e7;
  -webkit-box-shadow: inset 0 2px 7px 0 rgba(253, 190, 54, 0.7);
          box-shadow: inset 0 2px 7px 0 rgba(253, 190, 54, 0.7);
}
.configurator-button--alert {
  background-color: #E30613;
}
.configurator-button--alert:hover, .configurator-button--alert:focus {
  background-color: #b1050f;
}
.configurator-button--alert:active {
  background-color: #E30613;
  -webkit-box-shadow: inset 0 2px 7px 0 #b1050f;
          box-shadow: inset 0 2px 7px 0 #b1050f;
}
.configurator-button--alert.configurator-button--hollow {
  background-color: #fff;
  border-color: #E30613;
  color: #E30613;
}
.configurator-button--alert.configurator-button--hollow:hover, .configurator-button--alert.configurator-button--hollow:focus {
  background-color: #fc9fa5;
}
.configurator-button--alert.configurator-button--hollow:active {
  background-color: #fc9fa5;
  -webkit-box-shadow: inset 0 2px 7px 0 rgba(227, 6, 19, 0.7);
          box-shadow: inset 0 2px 7px 0 rgba(227, 6, 19, 0.7);
}
.configurator-button[disabled], .configurator-button[data-disabled], .configurator-button--disabled {
  background-color: #dadada;
  border-color: #dadada;
  pointer-events: none;
}
.configurator-button[disabled]:hover, .configurator-button[disabled]:focus, .configurator-button[data-disabled]:hover, .configurator-button[data-disabled]:focus, .configurator-button--disabled:hover, .configurator-button--disabled:focus {
  background-color: #dadada;
}
.configurator-button--additional-indention {
  padding: 2rem 1rem;
  margin: 0 0 0.5rem;
  border: 1px solid;
  background: #fff;
  color: #8f8f8f;
  border-color: #f0f0f0;
}
.configurator-button--additional-indention:hover {
  background: #fc9fa5;
  color: #777777;
  border-color: #E30613;
}
.configurator-button--selected {
  background: #9ff0e1;
  color: #1ebea0;
  border-color: #1ebea0;
}
.configurator-button--selected:hover {
  background: #fc9fa5;
  color: #777777;
  border-color: #E30613;
}
.configurator-button--active, .configurator-button--active:hover {
  background: #fc9fa5;
  color: #777777;
  border-color: #E30613;
}
.configurator-button[disabled] {
  color: #fff;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/configurator-message/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configurator-message {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0.5rem 0.5rem 0.5rem 1rem;
  border: 1px solid #f0f0f0;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/configurator-product/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configurator-product {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  flex-direction: row;
}
.configurator-product__name {
  font-weight: 500;
  color: #666666;
}
.configurator-product__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.configurator-product__actions--spacingless {
  margin-top: 0;
}
.configurator-product__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
.configurator-product__actions {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/configured-bundle-total/style.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configured-bundle-total {
  padding: 0.5rem;
  margin: 1rem 0.5rem;
  background: #f0f0f0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/selected-product-list/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.selected-product-list__header {
  /* prettier-ignore */
  margin: 0 0.5rem -0.5rem;
  padding: 0.5rem;
  border: 1px solid #f0f0f0;
  border-bottom: 0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-page/src/SprykerShop/Yves/ConfigurableBundlePage/Theme/default/components/molecules/template-list/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.template-list {
  border: 1px solid #f0f0f0;
  padding: 1.75rem 0.5rem 2.5rem;
  margin: 0.5rem;
}
.template-list::after {
  content: "";
  display: table;
  clear: both;
}
.template-list__list {
  margin: 0 -0.5rem;
}
.template-list__item-title {
  display: block;
  position: relative;
  min-height: 11rem;
  color: #333333;
}
.template-list__item-title--with-background {
  background: #f0f0f0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-widget/src/SprykerShop/Yves/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configured-bundle--ordered {
  padding: 0.5rem;
  margin: 0 0.5rem;
  background-color: #fff;
  border: 1px solid #f0f0f0;
}
.configured-bundle__content {
  padding: 0 0.5rem 0.5rem;
  margin: 0 -0.5rem;
  border-bottom: 1px solid #f0f0f0;
}
.configured-bundle__container {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.configured-bundle__col {
  max-width: 33.333%;
}
.configured-bundle__text {
  display: inline-block;
  text-align: left;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/configurable-bundle-widget/src/SprykerShop/Yves/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle-product/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.configured-bundle-product {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.configured-bundle-product__name {
  font-weight: 500;
  color: #666666;
}
.configured-bundle-product__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.configured-bundle-product__actions--spacingless {
  margin-top: 0;
}
.configured-bundle-product__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
@media only screen and (min-width: 770px) {
  .configured-bundle-product {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.configured-bundle-product__container {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 0.188rem;
}
.configured-bundle-product__col {
  margin-right: auto;
  margin-left: auto;
}
.configured-bundle-product__col:first-child {
  margin-left: 0;
}
.configured-bundle-product__col:last-child {
  margin-right: 0;
}
.configured-bundle-product__text {
  display: inline-block;
  text-align: left;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/components/molecules/order-detail-table/order-detail-table.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.order-detail-table {
  text-align: left;
}
.order-detail-table table {
  width: 100%;
}
@media print {
  .order-detail-table th, .order-detail-table td {
    padding: 0.25rem 0.5rem;
    border: 1px solid #C7C7C7;
  }
}
.order-detail-table td textarea {
  color: inherit;
  resize: none;
}
@media print {
  .order-detail-table td textarea {
    background-color: transparent;
    border: 0;
  }
}
.order-detail-table__item-status {
  white-space: nowrap;
}
.order-detail-table__item-status--completed:before {
  background-color: #6CA52F;
}
.order-detail-table__item-status--backlog:before {
  background-color: #fdbe36;
}
.order-detail-table__item-status:before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 100%;
  margin-right: 4px;
  display: inline-block;
  position: relative;
  top: 1px;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/file-manager-widget/src/SprykerShop/Yves/FileManagerWidget/Theme/default/components/molecules/file-download-link/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.file-download-link--icon {
  width: 8.5rem;
}
.file-download-link__link--icon {
  display: block;
  font-size: 0.875rem;
  color: #777777;
}
.file-download-link__link--icon:hover {
  text-decoration: none;
}
.file-download-link__icon {
  display: block;
  padding: 2rem 0;
  margin-bottom: 0.25rem;
  background-color: white;
  color: #fa555e;
  text-align: center;
}
.file-download-link__name-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.file-download-link__name {
  display: inline-block;
  vertical-align: middle;
}
.file-download-link__name--icon {
  max-width: 6rem;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.file-download-link__extension {
  vertical-align: middle;
}
.file-download-link__size {
  display: block;
  opacity: 0.5;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/MultiCartWidget/Theme/default/components/molecules/mini-cart-radio/mini-cart-radio.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.mini-cart-radio {
  line-height: normal;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/persistent-cart-share-widget/src/SprykerShop/Yves/PersistentCartShareWidget/Theme/default/components/molecules/url-mask-generator/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.url-mask-generator {
  position: relative;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/PriceProductVolumeWidget/Theme/default/components/molecules/volume-price/volume-price.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.volume-price {
  font-size: 1.125rem;
}
.volume-price__amount--original {
  font-size: 0.875rem;
  color: #666666 !important;
  text-decoration: line-through;
}
.volume-price__amount {
  margin-right: 0.4375rem;
}
.volume-price__tag {
  margin-right: 0.25rem;
  color: #E30613;
}
.volume-price__price {
  display: inline-block;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}
.volume-price__price--highlighted {
  -webkit-animation: priceHighlight 0.4s linear 2;
          animation: priceHighlight 0.4s linear 2;
}
.volume-price__price--hide {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}

@-webkit-keyframes priceHighlight {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes priceHighlight {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/PriceProductVolumeWidget/Theme/default/components/molecules/volume-price-table/volume-price-table.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.volume-price-table {
  margin-bottom: 2rem;
}
.volume-price-table table {
  text-align: center;
  -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}
.volume-price-table table th {
  padding: 0.8125rem 1.25rem 0.6875rem;
  font-size: 0.75rem;
  background: #f0f0f0;
  text-transform: uppercase;
}
.volume-price-table table th:first-child {
  text-align: center;
}
.volume-price-table table th:last-child {
  padding-right: 3.125rem;
}
.volume-price-table table td {
  padding: 0.6875rem 1.25rem;
  font-size: 0.8125rem;
  color: #8f8f8f;
}
.volume-price-table table td:first-child {
  text-align: center;
}
.volume-price-table table td:last-child {
  padding-right: 3.125rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-bundle-widget/src/SprykerShop/Yves/ProductBundleWidget/Theme/default/components/molecules/bundle-items/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.bundle-items__name {
  display: block;
  color: #666666;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-group-widget/src/SprykerShop/Yves/ProductGroupWidget/Theme/default/components/molecules/color-selector/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.color-selector {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  cursor: default;
}
.color-selector__item {
  -webkit-transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  border: 0.125rem solid #8f8f8f;
  border-radius: 100%;
  opacity: 0.5;
}
.color-selector__item:not(:last-child) {
  margin-right: 0.75rem;
}
.color-selector__item:hover, .color-selector__item--active {
  border-color: #E30613;
  opacity: 1;
}
.color-selector--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-group-widget/src/SprykerShop/Yves/ProductGroupWidget/Theme/default/components/molecules/product-detail-color-selector/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-detail-color-selector {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  cursor: default;
}
.product-detail-color-selector__item {
  -webkit-transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  border: 0.125rem solid #8f8f8f;
  border-radius: 100%;
  opacity: 0.5;
}
.product-detail-color-selector__item:not(:last-child) {
  margin-right: 0.75rem;
}
.product-detail-color-selector__item:hover, .product-detail-color-selector__item--active {
  border-color: #E30613;
  opacity: 1;
}
.product-detail-color-selector--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-group-widget/src/SprykerShop/Yves/ProductGroupWidget/Theme/default/components/molecules/product-item-color-selector/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-color-selector {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  cursor: default;
}
.product-item-color-selector__item {
  -webkit-transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  border: 0.125rem solid #8f8f8f;
  border-radius: 100%;
  opacity: 0.5;
}
.product-item-color-selector__item:not(:last-child) {
  margin-right: 0.75rem;
}
.product-item-color-selector__item:hover, .product-item-color-selector__item--active {
  border-color: #E30613;
  opacity: 1;
}
.product-item-color-selector--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-label-widget/src/SprykerShop/Yves/ProductLabelWidget/Theme/default/components/molecules/flag/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.flag {
  font-size: 0.875rem;
  line-height: 1.1;
  margin-bottom: 0.5rem;
  color: #666666;
}
.flag__text {
  display: inline-block;
  padding: 0.5rem;
  background: rgba(218, 218, 218, 0.5);
}
.flag__icon {
  color: #E30613;
}
.flag--highlight, .flag--highlight .flag__icon {
  color: #E30613;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductLabelWidget/Theme/default/components/molecules/label-group/label-group.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.label-group {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  max-height: 100%;
  pointer-events: none;
  z-index: 350;
  padding: 16px;
  text-align: left;
}
.label-group__text {
  display: inline-block;
  font-size: 0.625rem;
  line-height: 1.5rem;
  background-color: #E30613;
  color: #fff;
  padding: 0.1875rem 0.9375rem;
  font-weight: 500;
}
.label-group__text--top {
  background-color: #0064b4;
}
.label-group__text--new {
  font-size: 1rem;
  background-color: #666666;
}
.label-group__text--sale {
  background-color: #E30613;
}
.label-group__text--alternative, .label-group__text--discontinued {
  color: #fff;
  font-family: "Istok", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  background-color: #666666;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2);
          box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2);
}
.label-group--sets {
  padding-left: 0.875rem;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-label-widget/src/SprykerShop/Yves/ProductLabelWidget/Theme/default/components/molecules/tag/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.tag {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 2rem;
  height: 2rem;
  margin-bottom: 2rem;
  background: #E30613;
}
.tag::before, .tag::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 2rem;
  width: 2rem;
  background: #E30613;
  z-index: 1;
}
.tag::before {
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
}
.tag::after {
  -webkit-transform: rotate(60deg);
          transform: rotate(60deg);
}
.tag__text {
  font-size: 0.875rem;
  line-height: 1.1;
  display: block;
  position: relative;
  width: 100%;
  color: #fff;
  text-align: center;
  z-index: 2;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductOptionWidget/Theme/default/components/molecules/shopping-list-product-option-list/shopping-list-product-option-list.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-product-option-list__item:not(:first-child) {
  margin-top: 0.5rem;
}
.shopping-list-product-option-list .label {
  display: inline-block;
  text-transform: none;
  word-break: break-all;
  padding-right: 1.125rem;
}
.shopping-list-product-option-list .label::after {
  content: ":";
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductPackagingUnitWidget/Theme/default/components/molecules/packaging-unit-cart/packaging-unit-cart.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.packaging-unit-cart {
  margin-top: 0.8125rem;
  font-size: 0.875rem;
  color: #666666;
}
.packaging-unit-cart__item:not(:first-child) {
  margin-top: 0.75rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-review-widget/src/SprykerShop/Yves/ProductReviewWidget/Theme/default/components/molecules/rating-selector/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.rating-selector {
  display: inline-block;
}
.rating-selector__steps {
  display: inline-block;
  direction: rtl;
  vertical-align: middle;
  line-height: 0;
}
.rating-selector__step {
  float: right;
  display: block;
  position: relative;
  cursor: pointer;
  overflow-x: hidden;
}
.rating-selector__step--full:not(:first-child) {
  padding-right: calc(20px / 2);
}
.rating-selector__step--half:first-child {
  margin-right: calc(-20px / 2);
}
.rating-selector__step--half:nth-child(even) {
  width: calc(20px / 2);
}
.rating-selector__star {
  -webkit-transition: color 100ms ease-in-out;
  transition: color 100ms ease-in-out;
  position: relative;
  min-width: 20px;
  width: 20px;
  min-height: 20px;
  height: 20px;
  color: #dadada;
}
.rating-selector__star--half-left {
  left: calc(20px / 2);
}
.rating-selector__star--half-right {
  left: calc(-20px / 2);
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg);
}
.rating-selector__step:hover > .rating-selector__star, .rating-selector__step:hover ~ .rating-selector__step > .rating-selector__star {
  color: #E30613;
}
.rating-selector__step--active > .rating-selector__star {
  color: #E30613;
}
.rating-selector--readonly {
  pointer-events: none;
}
.rating-selector--expand {
  display: block;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductSearchWidget/Theme/default/components/molecules/product-quick-add-form/product-quick-add-form.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-quick-add-form--row {
  padding: 1.25rem;
  background-color: #f0f0f0;
}
@media only screen and (min-width: 768px) {
  .product-quick-add-form--row {
    padding: 1.25rem 1.25rem 0.25rem;
  }
}
.product-quick-add-form__title--row {
  font-size: 1rem;
  font-weight: 500;
}
.product-quick-add-form__button.button {
  padding: 0.9375rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-search-widget/src/SprykerShop/Yves/ProductSearchWidget/Theme/default/components/molecules/product-search-item/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-search-item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  flex-direction: row;
}
.product-search-item__name {
  font-weight: 500;
  color: #666666;
}
.product-search-item__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.product-search-item__actions--spacingless {
  margin-top: 0;
}
.product-search-item__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
.product-search-item__actions {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductSearchWidget/Theme/default/components/molecules/products-list/products-list.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.products-list__item {
  cursor: pointer;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.products-list__item:hover, .products-list__item--selected {
  background-color: #f0f0f0;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-form/quick-order-form.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-form {
  position: relative;
  padding-bottom: 3.125rem;
}
@media only screen and (min-width: 1204px) {
  .quick-order-form {
    padding-bottom: 0;
  }
}
.quick-order-form__clear-all-trigger, .quick-order-form__add-row-trigger {
  font-size: 0.8125rem;
  color: #8f8f8f;
  vertical-align: bottom;
}
.quick-order-form__add-row-trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.quick-order-form__add-row-trigger::before {
  content: "+";
  margin-right: 0.75rem;
  min-width: 2.5rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #E30613;
  text-align: center;
  border: 0.125rem solid #E30613;
  border-radius: 15px;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-row/quick-order-row.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-row__message {
  padding: 0.5rem;
  background-color: #fff;
  z-index: 600;
}
.quick-order-row__message--error {
  border: 1px solid #E30613;
  color: #E30613;
}
.quick-order-row__message--warning {
  border: 1px solid #fdbe36;
  color: #fdbe36;
}
.quick-order-row--is-loading {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.quick-order-row__holder-quantity {
  padding: 0.5rem 0.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #f4f4f4;
}
.quick-order-row__quantity[type=number] {
  margin: 0;
  padding: 0;
  font-size: 1rem;
  line-height: normal;
  width: 2.875rem;
  text-align: center;
  border: none;
  background-color: rgba(255, 255, 255, 0);
}
.quick-order-row__quantity[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
}
.quick-order-row__message {
  margin-left: 1.5rem;
  padding: 0.375rem 0.75rem;
  border: none;
  font-size: 0.75rem;
}
@media only screen and (min-width: 550px) {
  .quick-order-row__message {
    margin-left: 0;
  }
}
.quick-order-row__message--success {
  background-color: #1ebea0;
  color: #E30613;
}
.quick-order-row__message--error {
  background-color: rgba(227, 6, 19, 0.1);
  color: #E30613;
}
.quick-order-row__message--warning {
  background-color: rgba(253, 190, 54, 0.2);
  color: #fdbe36;
}
.quick-order-row__button {
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 2px;
  background-color: #fff;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  position: relative;
}
.quick-order-row__button--decrement::before, .quick-order-row__button--increment::before, .quick-order-row__button--increment::after {
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.5625rem;
  height: 0.125rem;
  background: #8f8f8f;
}
.quick-order-row__button--increment::after {
  width: 0.125rem;
  height: 0.5625rem;
}
.quick-order-row__button:hover {
  background: #E30613;
}
.quick-order-row__button:hover::before, .quick-order-row__button:hover::after {
  background: #fff;
}
.quick-order-row__button--disabled {
  background: #fff;
  cursor: not-allowed;
  -webkit-box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
}
.quick-order-row__button--disabled::before, .quick-order-row__button--disabled::after {
  background: #e7eaee;
}
.quick-order-row__button--disabled:hover, .quick-order-row__button--disabled:focus {
  background: #fff;
}
.quick-order-row__button--disabled:hover::before, .quick-order-row__button--disabled:hover::after, .quick-order-row__button--disabled:focus::before, .quick-order-row__button--disabled:focus::after {
  background: #e7eaee;
}
.quick-order-row__button-request-realtime-price {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #E30613;
  border-radius: 2px;
  border: 1px solid #E30613;
  color: #fff;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 1.625rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  position: relative;
  width: 1.625rem;
  font-size: 0.75rem;
  margin: 0 auto;
}
.quick-order-row__button-request-realtime-price--is-loading, .quick-order-row__button-request-realtime-price[disabled] {
  background-color: #999999;
  border-color: #999999;
  cursor: not-allowed;
}
.quick-order-row__button-request-realtime-price--new-price-applied:disabled {
  background-color: #fff;
  border-color: #6CA52F;
  color: #6CA52F;
  pointer-events: none;
}
.quick-order-row__product-search .product-search-autocomplete-form__input {
  font-size: 0.875rem;
}
.quick-order-row .availability-note,
.quick-order-row .delivery-time {
  margin: 0;
  font-size: 0.8125rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-row-partial/quick-order-row-partial.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-row-partial__holder-quantity {
  position: relative;
  padding: 0.5rem 0.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #f4f4f4;
}
.quick-order-row-partial__message {
  margin-left: 1.5rem;
  padding: 0.375rem 0.75rem;
  border: none;
  font-size: 0.75rem;
}
@media only screen and (min-width: 550px) {
  .quick-order-row-partial__message {
    margin-left: 0;
  }
}
.quick-order-row-partial__message--success {
  background-color: #1ebea0;
  color: #fff;
}
.quick-order-row-partial__message--error {
  background-color: rgba(227, 6, 19, 0.1);
  color: #E30613;
}
.quick-order-row-partial__message--warning {
  background-color: rgba(253, 190, 54, 0.2);
  color: #fdbe36;
}
.quick-order-row-partial__quantity[type=number] {
  margin: 0;
  padding: 0;
  font-size: 1rem;
  line-height: normal;
  width: 2.875rem;
  text-align: center;
  border: none;
  background-color: rgba(255, 255, 255, 0);
}
.quick-order-row-partial__quantity[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
}
.quick-order-row-partial__button {
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 2px;
  background-color: #fff;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  position: relative;
}
.quick-order-row-partial__button--decrement::before, .quick-order-row-partial__button--increment::before, .quick-order-row-partial__button--increment::after {
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.5625rem;
  height: 0.125rem;
  background: #8f8f8f;
}
.quick-order-row-partial__button--increment::after {
  width: 0.125rem;
  height: 0.5625rem;
}
.quick-order-row-partial__button:hover {
  background: #E30613;
}
.quick-order-row-partial__button:hover::before, .quick-order-row-partial__button:hover::after {
  background: #fff;
}
.quick-order-row-partial__button--disabled {
  background: #fff;
  cursor: not-allowed;
  -webkit-box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
}
.quick-order-row-partial__button--disabled::before, .quick-order-row-partial__button--disabled::after {
  background: #e7eaee;
}
.quick-order-row-partial__button--disabled:hover, .quick-order-row-partial__button--disabled:focus {
  background: #fff;
}
.quick-order-row-partial__button--disabled:hover::before, .quick-order-row-partial__button--disabled:hover::after, .quick-order-row-partial__button--disabled:focus::before, .quick-order-row-partial__button--disabled:focus::after {
  background: #e7eaee;
}
.quick-order-row-partial__button-request-realtime-price {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #E30613;
  border-radius: 2px;
  border: 1px solid #E30613;
  color: #fff;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 1.625rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  position: relative;
  width: 1.625rem;
  font-size: 0.75rem;
  margin: 0 auto;
}
.quick-order-row-partial__button-request-realtime-price--is-loading, .quick-order-row-partial__button-request-realtime-price[disabled] {
  background-color: #999999;
  border-color: #999999;
  cursor: not-allowed;
}
.quick-order-row-partial__button-request-realtime-price--new-price-applied:disabled {
  background-color: #fff;
  border-color: #6CA52F;
  color: #6CA52F;
  pointer-events: none;
}
.quick-order-row-partial .availability-note,
.quick-order-row-partial .delivery-time {
  margin: 0;
  font-size: 0.8125rem;
}
.quick-order-row-partial__product-availability .fa-ul li,
.quick-order-row-partial__product-availability .availability-note__text {
  font-size: 0.875rem;
}
.quick-order-row-partial__product-availability .fa-ul {
  margin-left: 1.28125rem;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-rows/quick-order-rows.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-rows {
  width: 100%;
}
.quick-order-rows__row {
  border-bottom: 0.0625rem solid #f0f0f0;
}
.quick-order-rows__row--head {
  background-color: #f0f0f0;
}
.quick-order-rows__cell {
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
}
.quick-order-rows__tooltip {
  position: relative;
}
.quick-order-rows__tooltip:hover .quick-order-rows__tooltip-content {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.quick-order-rows__tooltip-content {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
  background: #fff;
  border: 1px solid;
  margin-right: 0.3125rem;
  padding: 0.4375rem 0.875rem;
  position: absolute;
  right: 100%;
  text-align: left;
  top: 50%;
  -webkit-transform: translate(-10px, -50%);
          transform: translate(-10px, -50%);
  width: 12.5rem;
  text-transform: none;
}
.quick-order-rows__tooltip-content:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-color: transparent transparent transparent #666666;
  position: absolute;
  top: 50%;
  right: -6px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  margin-top: -3px;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/quote-request-agent-widget/src/SprykerShop/Yves/QuoteRequestAgentWidget/Theme/default/components/atoms/request-status/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.request-status {
  font-size: 0.875rem;
  display: inline-block;
  padding: 0.1rem 0.5rem;
  background-color: #fc9fa5;
  color: #b1050f;
}
.request-status--hollow {
  border: 1px solid #dadada;
  background: none;
  color: #8f8f8f;
}
.request-status--success {
  background-color: #9ff0e1;
  color: #17927b;
}
.request-status--warning {
  background-color: #fff7e7;
  color: #fcae04;
}
.request-status--alert {
  background-color: #fc9fa5;
  color: #b1050f;
}
.request-status--in-progress {
  background-color: #fc9fa5;
  color: #b1050f;
}
.request-status--ready {
  background-color: #9ff0e1;
  color: #17927b;
}
.request-status--waiting {
  background-color: #fff7e7;
  color: #fcae04;
}
.request-status--closed {
  background-color: #8c8c8c;
  color: #1a1a1a;
}
.request-status--canceled {
  background-color: #d0d0d0;
  color: #5e5e5e;
}
.request-status--draft {
  background-color: #fc9fa5;
  color: #b1050f;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/order-configured-bundle/style.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.order-configured-bundle {
  border-top: 1px solid #dadada;
  background: none;
}
.order-configured-bundle__col {
  vertical-align: top;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/order-configured-bundle-product/style.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.order-configured-bundle-product {
  background-color: #f4f4f4;
}
.order-configured-bundle-product:last-child {
  border-bottom: 1px solid #dadada;
}
.order-configured-bundle-product__col {
  vertical-align: top;
  padding: 0.25rem;
}
.order-configured-bundle-product__bullet {
  float: left;
  margin-right: 0.25rem;
}
.order-configured-bundle-product__content {
  display: block;
  overflow: hidden;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/ordered-configured-bundle/style.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.ordered-configured-bundle {
  padding: 0.5rem;
  margin: 0 0.5rem;
  background-color: #fff;
  border: 1px solid #f0f0f0;
}
.ordered-configured-bundle__content {
  padding: 0 0.5rem 0.5rem;
  margin: 0 -0.5rem;
  border-bottom: 1px solid #f0f0f0;
}
.ordered-configured-bundle__container {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.ordered-configured-bundle__col {
  max-width: 33.333%;
}
.ordered-configured-bundle__text {
  display: inline-block;
  text-align: left;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/ordered-configured-bundle-product/style.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.ordered-configured-bundle-product {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.ordered-configured-bundle-product__name {
  font-weight: 500;
  color: #666666;
}
.ordered-configured-bundle-product__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.ordered-configured-bundle-product__actions--spacingless {
  margin-top: 0;
}
.ordered-configured-bundle-product__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
@media only screen and (min-width: 770px) {
  .ordered-configured-bundle-product {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.ordered-configured-bundle-product__container {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 0.188rem;
}
.ordered-configured-bundle-product__col {
  margin-right: auto;
  margin-left: auto;
}
.ordered-configured-bundle-product__col:first-child {
  margin-left: 0;
}
.ordered-configured-bundle-product__col:last-child {
  margin-right: 0;
}
.ordered-configured-bundle-product__text {
  display: inline-block;
  text-align: left;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListNoteWidget/Theme/default/components/molecules/shopping-list-note-toggler/shopping-list-note-toggler.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-note {
  margin-top: 1rem;
}
.shopping-list-note__container {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
}
.shopping-list-note__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0.4375rem;
}
.shopping-list-note__text {
  color: #8f8f8f;
  font-size: 0.8125rem;
  line-height: 2.23;
}

.shopping-list-note-toggler {
  margin-top: 1rem;
}
.shopping-list-note-toggler__container {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
}
.shopping-list-note-toggler__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0.4375rem;
}
.shopping-list-note-toggler__text {
  color: #8f8f8f;
  font-size: 0.8125rem;
  line-height: 2.23;
}
.shopping-list-note-toggler__label {
  font-size: 0.875rem;
  line-height: 1.125rem;
  color: #8f8f8f;
  cursor: pointer;
}
.shopping-list-note-toggler .label {
  display: none;
}
.shopping-list-note-toggler .textarea {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.125rem;
  color: #8f8f8f;
  padding: 0.9375rem 1.25rem;
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  min-height: 5.375rem;
  max-width: 100%;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListPage/Theme/default/components/molecules/share-list/share-list.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.share-list__list {
  max-height: 100%;
  margin-bottom: 1.875rem;
}
.share-list__title {
  font-weight: 500;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-page/src/SprykerShop/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list {
  width: 100%;
}
.shopping-list__head {
  font-weight: 500;
  border-bottom: 1px solid #dadada;
}
.shopping-list__cell {
  padding: 0.5rem 0.25rem;
}
.shopping-list__row {
  border-top: 1px solid #dadada;
}
.shopping-list__row--disable {
  position: relative;
}
.shopping-list__row--disable::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background: #fff;
  opacity: 0.4;
  cursor: not-allowed;
}
.shopping-list__row:first-child, .shopping-list__row--borderless {
  border: none;
}
.shopping-list__configuration-button {
  position: relative;
  z-index: 1;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-info/shopping-list-info.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-info {
  background-color: #f0f0f0;
  padding: 0.5rem;
  padding: 1.25rem;
  background-color: #f0f0f0;
  border-radius: 2px;
  margin: 0.625rem 0 1.5rem;
  color: #8f8f8f;
  font-size: 0.875rem;
}
.shopping-list-info__title {
  color: #666666;
  font-size: 0.75rem;
  text-transform: uppercase;
  margin-right: 0.5rem;
  vertical-align: middle;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-page/src/SprykerShop/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-message/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-message__title {
  color: #E30613;
}
.shopping-list-message__text {
  overflow: hidden;
  text-overflow: ellipsis;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-page/src/SprykerShop/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-overview/style.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-overview__name {
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-permission/shopping-list-permission.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-permission {
  color: #8f8f8f;
}
.shopping-list-permission__full-access {
  color: #1ebea0;
}
.shopping-list-permission {
  color: #666666;
}
.shopping-list-permission__full--badge, .shopping-list-permission--badge {
  color: #fff;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-page/src/SprykerShop/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-product-quick-add/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-product-quick-add #product-quick-add-form-wrapper {
  padding: 0.5rem;
  background-color: #f0f0f0;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListWidget/Theme/default/components/molecules/shop-list-item/shop-list-item.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shop-list-item {
  position: relative;
  padding: 0.8125rem 1.5rem 0.9375rem;
  min-width: 29.25rem;
  max-width: 38.75rem;
  border-bottom: 1px solid #e7eaee;
}
.shop-list-item:hover {
  background-color: #f0f0f0;
}
.shop-list-item:hover .shop-list-item__name {
  text-decoration: underline;
}
.shop-list-item__list {
  overflow-y: auto;
}
.shop-list-item__name {
  color: #666666;
  font-size: 16px;
  line-height: 1.8125rem;
  letter-spacing: 0.0125rem;
  text-overflow: ellipsis;
  overflow: hidden;
  display: block;
  max-width: 23.125rem;
  white-space: nowrap;
  margin-right: 0.25rem;
}
.shop-list-item__name:hover {
  color: #666666;
}
.shop-list-item__owner {
  color: #666666;
  font-weight: 400;
}
.shop-list-item__items-count {
  display: inline-block;
  font-size: 0.6875rem;
  line-height: 1.375rem;
  font-weight: 500;
  letter-spacing: 0.025rem;
  color: #fff;
  background-color: #fdbe36;
  padding: 0 0.5625rem;
  margin-right: 0.5625rem;
  border-radius: 2px;
  vertical-align: middle;
}
.shop-list-item__access {
  color: #8f8f8f;
  text-transform: uppercase;
  font-size: 0.6875rem;
  font-weight: 500;
}
.shop-list-item__access--full {
  color: #E30613;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-widget/src/SprykerShop/Yves/ShoppingListWidget/Theme/default/components/molecules/shopping-list-navigation/style.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-navigation__item {
  overflow: hidden;
  text-overflow: ellipsis;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shopping-list-widget/src/SprykerShop/Yves/ShoppingListWidget/Theme/default/components/molecules/subtotal-price/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.subtotal-price {
  background-color: #f0f0f0;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/tabs-widget/src/SprykerShop/Yves/TabsWidget/Theme/default/components/molecules/search-tabs/style.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.search-tabs {
  text-align: center;
  border-left: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}
.search-tabs__item {
  display: inline-block;
  padding: 0.75rem 2rem;
  border-top: 1px solid #f0f0f0;
  border-right: 1px solid #f0f0f0;
}
@media only screen and (min-width: 550px) {
  .search-tabs__item {
    width: auto;
    min-width: inherit;
  }
}
.search-tabs__item--active {
  position: relative;
  background-color: #fff;
}
.search-tabs__item--active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: calc(100% + 1px);
  height: 2px;
  background-color: #fff;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/views/price-check/price-check.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-check-tabset .tab {
  display: none;
}
.price-check-tabset > input:first-child:checked ~ .tab-container > .tab:first-child, .price-check-tabset > input:nth-child(3):checked ~ .tab-container > .tab:nth-child(2), .price-check-tabset > input:nth-child(5):checked ~ .tab-container > .tab:nth-child(3) {
  display: block;
}
.price-check-tabset > input:checked + label {
  cursor: default;
  background-color: #E30613;
  border: 1px solid #E30613;
  border-bottom: 0;
  color: #fff;
}
.price-check-tabset > input:not(:checked) + label:hover, .price-check-tabset > input:not(:checked) + label:focus {
  background-color: #e6e6e6;
  border-color: #b1050f;
  color: #E30613;
  text-decoration: none;
}
.price-check-tabset > input + label {
  -webkit-transition: color 250ms ease-in-out, border-color 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: color 250ms ease-in-out, border-color 250ms ease-in-out, background-color 250ms ease-in-out;
  background-color: #fff;
  border: solid 1px #E30613;
  border-radius: 6px 6px 0 0;
  border-bottom: 0;
  color: #E30613;
  font-size: 1rem;
  line-height: 1.25rem;
  display: inline-block;
  padding: 0.1875rem 0.625rem;
  text-align: center;
  cursor: pointer;
}
.price-check-tabset > input[type=radio] {
  position: absolute;
  left: -200vw;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/DiscountWidget/Theme/default/views/cart-discount-summary/cart-discount-summary.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-discount-summary {
  padding-top: 1.125rem;
}
.cart-discount-summary__content {
  margin: 0.5rem -1.25rem 0;
  padding: 0 1.25rem 1.0625rem;
  border-bottom: 1px solid #dce0e5;
}
.cart-discount-summary__text {
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1.08;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/DiscountWidget/Theme/default/views/cart-discount-voucher-form/cart-discount-voucher-form.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-discount-voucher-form .form__container {
  position: relative;
}
.cart-discount-voucher-form .form__container .input {
  padding-left: 0.75rem;
  padding-right: 4.0625rem;
}
.cart-discount-voucher-form .form__actions {
  position: absolute;
  top: 0.5rem;
  bottom: 0.5rem;
  right: 0;
  margin-top: 0;
}
.cart-discount-voucher-form .form__action {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  font-size: 0.75rem;
  font-weight: 500;
  color: #666666;
}
.cart-discount-voucher-form .form__action:hover, .cart-discount-voucher-form .form__action:focus {
  color: #8f8f8f;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/DiscountWidget/Theme/default/views/checkout-summary-dicount-voucher-form/checkout-summary-dicount-voucher-form.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkout-summary-dicount-voucher-form .form__container {
  position: relative;
}
.checkout-summary-dicount-voucher-form .form__container .input {
  padding-left: 0.75rem;
  padding-right: 8rem;
}
.checkout-summary-dicount-voucher-form .form__actions {
  position: absolute;
  height: 3rem;
  bottom: 0.5rem;
  right: 0;
  margin-top: 0;
}
.checkout-summary-dicount-voucher-form .form__action {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 3rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #666666;
  padding-right: 1.25rem;
}
.checkout-summary-dicount-voucher-form .form__action:hover, .checkout-summary-dicount-voucher-form .form__action:focus {
  color: #8f8f8f;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/MultiCartPage/Theme/default/views/cart-update/cart-update.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-update {
  margin-top: 2.625rem;
  margin-bottom: 2.625rem;
}
.cart-update .label {
  display: inline-block;
  text-transform: uppercase;
  color: #666666;
  font-size: 0.75rem;
  font-weight: 500;
  margin-bottom: 0.4375rem;
}
.cart-update .label::after {
  color: #666666;
}
.cart-update .form__actions {
  text-align: left;
  margin-top: 1.25rem;
}
.cart-update .form__action {
  margin-left: 0;
  margin-right: 1.25rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/AgentWidget/Theme/default/components/molecules/agent-control-item/agent-control-item.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.agent-control-item__info {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 14px;
  line-height: normal;
}
.agent-control-item__button-wrap {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.agent-control-item__name {
  font-weight: 500;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/AvailabilityDateWidget/Theme/default/components/molecules/availability-date-item/availability-date-item.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.availability-date-item__span {
  white-space: nowrap;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartNoteWidget/Theme/default/components/molecules/cart-item-note/cart-item-note.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-item-note {
  margin-top: 1rem;
}
.cart-item-note__container {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
}
.cart-item-note__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0.4375rem;
}
.cart-item-note__label {
  font-size: 0.875rem;
  line-height: 1.125rem;
  color: #8f8f8f;
}
.cart-item-note__content {
  margin-top: 1.0625rem;
}
.cart-item-note__text {
  color: #8f8f8f;
  font-size: 0.8125rem;
  line-height: 1.38;
}
.cart-item-note .form__field {
  padding-top: 0;
}
.cart-item-note .form__actions {
  text-align: left;
  margin-top: 0;
}
.cart-item-note .form__action {
  margin-top: 0.75rem;
  margin-left: 0;
}
.cart-item-note .label {
  display: none;
}
.cart-item-note .textarea {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.125rem;
  color: #8f8f8f;
  padding: 0.9375rem 1.25rem;
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  min-height: 5.375rem;
  max-width: 100%;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartNoteWidget/Theme/default/components/molecules/cart-item-note-actions/cart-item-note-actions.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-item-note-actions {
  margin-top: 0.9375rem;
}
.cart-item-note-actions__item {
  margin-right: 1.6875rem;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartPage/Theme/default/components/molecules/cart-bottom/cart-bottom.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-bottom {
  padding-right: 0.4375rem;
  margin-bottom: 1.25rem;
}
@media only screen and (min-width: 768px) {
  .cart-bottom {
    padding-right: 30px;
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartPage/Theme/default/components/molecules/cart-summary/cart-summary.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-summary__or {
  font-family: FrutigerNextPro, serif;
  text-align: center;
  font-weight: 500;
  font-size: 1rem;
}
.cart-summary__item {
  color: #666666;
  line-height: 1.5rem;
  margin: 0 -1.25rem;
  padding: 0.75rem 1.25rem;
}
.cart-summary__item:not(:first-child) {
  border-top: 1px solid #dce0e5;
}
.cart-summary__item:empty {
  padding: 0;
  border-top: none;
}
.cart-summary__item--top-space {
  padding-top: 1.4375rem;
}
.cart-summary__item--total {
  font-size: 1.125rem;
  font-weight: 500;
}
.cart-summary__button {
  margin-top: 1.25rem;
}
.cart-summary__voucher-info {
  margin: 0 -1.25rem;
  border-top: 1px solid #dce0e5;
}
.cart-summary__voucher-info-item {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.cart-summary__tooltip {
  display: inline-block;
  position: relative;
  z-index: 700;
}
.cart-summary__tooltip:hover .cart-summary__tooltip-content {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.cart-summary__tooltip-content {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
  background: #fff;
  border: 1px solid;
  margin-right: 0.3125rem;
  padding: 0.4375rem 0.875rem;
  position: absolute;
  left: calc(100% + 6px);
  text-align: left;
  top: 50%;
  -webkit-transform: translate(-10px, -50%);
          transform: translate(-10px, -50%);
  width: 12.5rem;
}
.cart-summary__tooltip-content:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 5px 5px 0;
  border-color: transparent #666666 transparent transparent;
  position: absolute;
  top: 50%;
  left: -6px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  margin-top: -3px;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CartPage/Theme/default/components/molecules/cart-title/cart-title.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-title {
  margin-bottom: 1.25rem;
}
.cart-title__text {
  display: inline-block;
  font-size: 2rem;
  line-height: normal;
  font-weight: 500;
  margin-bottom: 0.75rem;
  word-break: break-word;
  position: relative;
  padding-right: 2.25rem;
}
.cart-title__link {
  padding-bottom: 0;
  margin-left: 0.625rem;
  position: absolute;
  right: 0;
  top: 0.1875rem;
}
.cart-title__quantity {
  font-weight: 500;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/atoms/checkout-secure/checkout-secure.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkout-secure {
  color: #8f8f8f;
  font-size: 0.875rem;
  font-weight: 500;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/checkout-address/checkout-address.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.pac-logo::after {
  background: transparent;
  height: 0;
  padding: 0;
}

.pac-container {
  padding: 1rem;
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}
.pac-container .pac-item:nth-child(1) {
  border-top: 0;
}

.checkout-address .form__actions {
  margin: 0;
}

.addressForm_endCustomerAddress_validation_error,
.addressForm_newShippingAddress_validation_error {
  color: #E30613;
  margin-top: 1.5rem;
  display: none;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/checkout-form/checkout-form.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* stylelint-disable */
.checkout-form--hidden-actions .form__actions {
  display: none;
}
.checkout-form .form {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  width: 100%;
}
.checkout-form .form__fields {
  margin-left: -0.3125rem;
  margin-right: -0.3125rem;
}
@media only screen and (min-width: 770px) {
  .checkout-form .form__fields {
    margin-left: -0.625rem;
    margin-right: -0.625rem;
  }
}
.checkout-form .form__field {
  padding-top: 0;
  padding-left: 0.3125rem;
  padding-right: 0.3125rem;
}
@media only screen and (min-width: 770px) {
  .checkout-form .form__field {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
  }
}
.checkout-form .form__actions {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
}
.checkout-form .form__actions .form__action {
  margin-right: 0;
}
.checkout-form .form__actions button {
  margin-left: 1rem;
}
.checkout-form .label:not(span) {
  color: #666666;
}
.checkout-form .input {
  -webkit-transition: border-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, box-shadow 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
}
.checkout-form .input::-webkit-input-placeholder {
  color: #666666;
}
.checkout-form .input::-moz-placeholder {
  color: #666666;
}
.checkout-form .input:-ms-input-placeholder {
  color: #666666;
}
.checkout-form .input::-ms-input-placeholder {
  color: #666666;
}
.checkout-form .input::placeholder {
  color: #666666;
}
.checkout-form .input--error {
  border-color: #E30613;
  -webkit-box-shadow: 0 0 0 0.0625rem #E30613;
          box-shadow: 0 0 0 0.0625rem #E30613;
}
.checkout-form .select2-container.select2-container--focus .select2-selection--single {
  border-color: #E30613;
  -webkit-box-shadow: 0 0 0 1px #E30613;
          box-shadow: 0 0 0 1px #E30613;
}
.checkout-form .select2-container .select2-selection--single {
  -webkit-transition: border-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, box-shadow 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, box-shadow 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  border-radius: 2px;
  background-color: #f0f0f0;
  color: #666666;
}
.checkout-form .radio__label {
  color: #666666;
}
.checkout-form .radio__input:checked ~ .radio__box {
  background-color: #fff;
  -webkit-box-shadow: inset 0 0 0 0.25rem #E30613;
          box-shadow: inset 0 0 0 0.25rem #E30613;
}
.checkout-form .radio__input:checked ~ .radio__label {
  color: #666666;
  font-weight: 500;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/checkout-list/checkout-list.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* stylelint-disable */
.checkout-list--bottom-margin {
  margin-bottom: 1.875rem;
}
.checkout-list__item {
  display: block;
  position: relative;
}
.checkout-list__item:not(:first-child) .radio__box::before,
.checkout-list__item:not(:first-child) .toggler-radio__box::before {
  border-top: none;
}
.checkout-list__item:last-child .radio__box::before,
.checkout-list__item:last-child .toggler-radio__box::before {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}
.checkout-list__content {
  margin-top: -0.5rem;
  padding: 0 1.875rem 1.375rem 4rem;
  position: relative;
}
.checkout-list .form {
  padding: 0;
}
.checkout-list .radio__container,
.checkout-list .toggler-radio__container {
  padding: 1.875rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.checkout-list .radio__box::before,
.checkout-list .toggler-radio__box::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.checkout-list .radio__label,
.checkout-list .toggler-radio__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 0;
}
.checkout-list .radio__input:checked ~ .radio__box::before,
.checkout-list .radio__input:checked ~ .toggler-radio__box::before,
.checkout-list .toggler-radio__input:checked ~ .radio__box::before,
.checkout-list .toggler-radio__input:checked ~ .toggler-radio__box::before {
  -webkit-box-shadow: 0 10px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
}
.checkout-list .toggler-radio {
  position: static;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/checkout-wrap/checkout-wrap.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkout-wrap {
  border-radius: 2px;
  border: 1px solid #e7eaee;
  padding: 1.875rem 2.5rem 2.5rem;
}
.checkout-wrap__container {
  margin: 0.625rem -1.875rem 1.875rem;
  padding: 0 2.375rem 1.375rem;
  border-bottom: 1px solid #e7eaee;
  width: calc(100% + 4.75rem);
}
.checkout-wrap__container--top {
  margin-top: -0.5rem;
  padding-top: 0;
  border-top: none;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/shipment-group/shipment-group.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shipment-group {
  margin-bottom: 1.125rem;
}
.shipment-group:last-child {
  margin-bottom: 0.375rem;
}
.shipment-group__item {
  display: block;
  position: relative;
  font-weight: 500;
}
.shipment-group__item:not(:first-child) .radio__box::before,
.shipment-group__item:not(:first-child) .toggler-radio__box::before {
  border-top: none;
}
.shipment-group__item:last-child .radio__box::before,
.shipment-group__item:last-child .toggler-radio__box::before {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}
.shipment-group__item-description {
  font-weight: 500;
}
.shipment-group__item-costs {
  font-weight: 500;
}
.shipment-group__item-costs--drop {
  color: #999999;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/shipment-tabs/shipment-tabs.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shipment-tabs {
  width: 100%;
}
.shipment-tabs .form {
  padding: 0;
}
.shipment-tabs .radio,
.shipment-tabs .toggler-radio {
  position: static;
}
.shipment-tabs .radio__container,
.shipment-tabs .toggler-radio__container {
  padding: 1.875rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.shipment-tabs .radio__box::before,
.shipment-tabs .toggler-radio__box::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.shipment-tabs .radio__label,
.shipment-tabs .toggler-radio__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 0;
}
.shipment-tabs .radio__input:checked ~ .radio__box::before,
.shipment-tabs .radio__input:checked ~ .toggler-radio__box::before,
.shipment-tabs .toggler-radio__input:checked ~ .radio__box::before,
.shipment-tabs .toggler-radio__input:checked ~ .toggler-radio__box::before {
  -webkit-box-shadow: 0 10px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
}
.shipment-tabs__tab {
  font-weight: 500;
  border-bottom: 1px solid #E7E7E7;
}
.shipment-tabs__tab.active {
  background-color: #f0f0f0;
  border-bottom: none;
  border-color: #E7E7E7;
}
.shipment-tabs__container {
  border: 1px solid #E7E7E7;
  border-top: none;
}
.shipment-tabs__content {
  display: none;
  position: relative;
  padding: 2.5rem;
}
.shipment-tabs__content.active {
  display: block;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/summary-overview/summary-overview.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.summary-overview {
  margin-top: 2.25rem;
  margin-bottom: 1.875rem;
}
.summary-overview__top {
  margin-bottom: 0.9375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #666666;
}
.summary-overview__title {
  font-weight: 500;
  color: #666666;
}
.summary-overview__title--total {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.2;
}
.summary-overview__list {
  background-color: #f0f0f0;
  border-radius: 2px;
}
.summary-overview__item {
  padding: 1.25rem 1.5rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.summary-overview__item > * {
  padding: 0.25rem;
}
.summary-overview__item:not(:first-child) {
  border-top: 1px solid #dce0e5;
}
.summary-overview__item--total {
  padding: 1.5rem 1.875rem;
}
.summary-overview__text-wrap {
  margin-top: 0.6875rem;
}
.summary-overview__text {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 0.87;
}
.summary-overview__inner-row {
  margin-top: 0.25rem;
}
.summary-overview .discount-description {
  font-style: italic;
  font-size: 0.8125rem;
  padding-top: 0.3125rem;
  line-height: 1.25;
}
.summary-overview .discount-price {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-item-align: start;
      align-self: flex-start;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/summary-sidebar-item/summary-sidebar-item.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.summary-sidebar-item {
  padding: 1.6875rem 1.875rem 1.875rem;
  background-color: #f0f0f0;
  margin-bottom: 20px;
}
.summary-sidebar-item__title {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.summary-sidebar-item__method {
  font-size: 0.875rem;
  line-height: 1.5625rem;
  color: #666666;
}
.summary-sidebar-item__list {
  font-size: 0.9375rem;
  line-height: 1.375rem;
  color: #8f8f8f;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CheckoutPage/Theme/default/components/molecules/summary-toggle/summary-toggle.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.summary-toggle__item {
  background-color: #f0f0f0;
  margin-top: 0.625rem;
  padding: 1.0625rem 1.25rem;
  font-size: 1rem;
  font-weight: 500;
  border-radius: 2px;
}
.summary-toggle__item .label {
  display: none;
}
.summary-toggle__item .input {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.125rem;
  color: #8f8f8f;
  padding: 0.9375rem 1.25rem;
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
}
.summary-toggle__title {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.125rem;
}
.summary-toggle__content {
  margin-top: 1.125rem;
}
.summary-toggle__content--voucher {
  max-width: 550px;
}
.summary-toggle__content .form__field {
  padding-top: 0;
}
.summary-toggle__content .form__actions {
  text-align: left;
  margin-top: 0;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/components/molecules/price-token-modal/price-token-modal.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-token-modal__icon-box i {
  float: right;
}
.price-token-modal__icon-box {
  font-size: 2rem;
  color: #E30613;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/components/molecules/project-order-detail-table/project-order-detail-table.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-order-detail-table table tr {
  vertical-align: top;
}
.project-order-detail-table table th, .project-order-detail-table table td {
  padding-left: 1rem;
  padding-right: 1rem;
}
.project-order-detail-table table .transform-cell > * {
  margin-right: 0.5rem;
}
@media only screen and (min-width: 768px) {
  .project-order-detail-table table th, .project-order-detail-table table td {
    max-width: 10rem;
  }
  .project-order-detail-table table .transform-cell > * {
    margin-right: 0;
  }
}
@media only screen and (min-width: 1024px) {
  .project-order-detail-table table th, .project-order-detail-table table td {
    max-width: 15rem;
  }
}
.project-order-detail-table__quantity {
  font-weight: 500;
}
.project-order-detail-table__remaining-quantity--success {
  color: #6CA52F;
  font-weight: 500;
}
.project-order-detail-table__remaining-quantity--danger {
  color: #E30613;
  font-weight: 500;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/components/molecules/project-order-info/project-order-info.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-order-info {
  margin-bottom: 1.875rem;
}
.project-order-info__project-order--number {
  font-weight: 500;
}
.project-order-info__project-order--manufacturer {
  text-transform: uppercase;
}
.project-order-info__customer-reference--content {
  font-weight: 500;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CustomerPage/Theme/default/components/molecules/project-order-table/project-order-table.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-order-table__project-order {
  text-transform: uppercase;
}
.project-order-table__project-order--number {
  font-weight: 500;
  text-transform: uppercase;
}
.project-order-table__project-order--manufacturer {
  margin-left: 0.3125rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/DropShipmentExpenseWidget/Theme/default/components/molecules/drop-shipment-expense-list/drop-shipment-expense-list.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.drop-shipment-expense-list--cart {
  margin: 0.5rem -1.25rem 0;
  padding: 0 1.25rem 1.0625rem;
  border-bottom: 1px solid #dce0e5;
}
.drop-shipment-expense-list__text {
  color: #8f8f8f;
}
.drop-shipment-expense-list__text--cart {
  color: #666666;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ErrorPage/Theme/default/components/organisms/error-block/error-block.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.error-block__text {
  font-weight: 500;
  letter-spacing: 0.01875rem;
  line-height: 1.25rem;
}
.error-block__code {
  font-size: 6.25rem;
  font-weight: 500;
  color: #fdcb5e;
}
.error-block__code-decor {
  position: relative;
  width: 7.5625rem;
  height: 7.5625rem;
  border-radius: 50%;
  background: #fdcb5e;
  margin: 0 0.3125rem;
}
.error-block__code-decor-inner {
  position: absolute;
  width: 2.5rem;
  height: 1.875rem;
  border-bottom: 0.25rem solid #000;
  top: 2.3125rem;
  left: 3.125rem;
}
.error-block__code-decor-inner::after, .error-block__code-decor-inner::before {
  content: "";
  position: absolute;
  background: #000;
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  top: 0;
}
.error-block__code-decor-inner::after {
  left: 0;
}
.error-block__code-decor-inner::before {
  right: 0;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/EuropeanProductEnergyLabelWidget/Theme/default/components/molecules/european-product-energy-label/european-product-energy-label.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.european-product-energy-label__label img {
  width: 213px;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ExternalProductConfiguratorWidget/Theme/default/components/molecules/external-product-configurator-fujitsu/external-product-configurator-fujitsu.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.external-product-configurator-fujitsu {
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
.external-product-configurator-fujitsu .button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.external-product-configurator-fujitsu svg {
  margin-top: -0.3125rem;
  width: 2.5rem;
}
.external-product-configurator-fujitsu .button:hover svg {
  color: #fff;
}
.external-product-configurator-fujitsu p {
  margin-top: 0.3125rem;
}
.external-product-configurator-fujitsu p a {
  color: #666666;
  text-decoration: underline;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ExternalProductConfiguratorWidget/Theme/default/components/molecules/external-product-configurator-printer-4-you/external-product-configurator-printer-4-you.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.external-product-configurator-printer-4-you {
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
.external-product-configurator-printer-4-you__button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ExternalProductConfiguratorWidget/Theme/default/components/molecules/external-product-price-request-fujitsu/external-product-price-request-fujitsu.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.external-product-price-request-fujitsu {
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
.external-product-price-request-fujitsu .button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: #E7E7E7;
}
.external-product-price-request-fujitsu .button:hover {
  background-color: #8f8f8f;
}
.external-product-price-request-fujitsu svg {
  margin-top: -0.3125rem;
  width: 2.5rem;
}
.external-product-price-request-fujitsu .button:hover svg {
  color: #fff;
}
.external-product-price-request-fujitsu p {
  margin-top: 0.3125rem;
}
.external-product-price-request-fujitsu p a {
  color: #666666;
  text-decoration: underline;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/MultiCartPage/Theme/default/components/molecules/quote-table/quote-table.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quote-table {
  margin-top: 1.25rem;
}
.quote-table tr:last-child {
  border-bottom: 1px solid #e7eaee;
}
.quote-table th:first-child,
.quote-table td:first-child {
  padding-left: 1.875rem;
}
.quote-table__cart-name {
  color: #666666;
  font-weight: 500;
  word-break: break-word;
}
.quote-table__cart-name--active {
  color: #E30613;
}
.quote-table__cart-name:hover {
  color: #E30613;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/MultiCartWidget/Theme/default/components/molecules/add-to-cart-selector/add-to-cart-selector.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/MultiCartWidget/Theme/default/components/molecules/mini-cart-detail/mini-cart-detail.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.mini-cart-detail {
  position: relative;
  padding: 0.8125rem 1.5rem 0.9375rem;
  min-width: 29.25rem;
  max-width: 38.75rem;
  border-bottom: 1px solid #e7eaee;
}
.mini-cart-detail:hover {
  background-color: #f0f0f0;
}
.mini-cart-detail:hover .mini-cart-detail__name {
  text-decoration: underline;
}
.mini-cart-detail__title {
  font-size: 16px;
  color: #666666;
  line-height: 1.8125rem;
  letter-spacing: 0.0125rem;
}
.mini-cart-detail__title:hover {
  color: #666666;
}
.mini-cart-detail__name {
  text-overflow: ellipsis;
  overflow: hidden;
  display: block;
  max-width: 23.125rem;
  white-space: nowrap;
  margin-right: 0.25rem;
}
.mini-cart-detail__marker {
  color: #666666;
  text-transform: lowercase;
}
.mini-cart-detail__price {
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.mini-cart-detail__price--active {
  color: #666666;
}
.mini-cart-detail__info {
  font-size: 0.6875rem;
  line-height: 1.8125rem;
  letter-spacing: 0.00625rem;
  color: #666666;
}
.mini-cart-detail__info--main {
  color: #E30613;
}
.mini-cart-detail__quantity {
  display: inline-block;
  font-size: 0.6875rem;
  line-height: 1.375rem;
  font-weight: 500;
  letter-spacing: 0.025rem;
  color: #fff;
  background-color: #fdbe36;
  padding: 0 0.5625rem;
  margin-right: 0.5625rem;
  border-radius: 2px;
  vertical-align: middle;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/OrderCustomReferenceWidget/Theme/default/components/molecules/order-custom-reference/order-custom-reference.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.order-custom-reference {
  margin-top: 1rem;
}
.order-custom-reference__container {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
}
.order-custom-reference__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0.4375rem;
}
.order-custom-reference__text {
  color: #8f8f8f;
  font-size: 0.8125rem;
  line-height: 1.38;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/PriceList/Theme/default/components/molecules/price-list/price-list.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-list__download {
  margin-bottom: 1.25rem;
}
.price-list__download-headline {
  margin-bottom: 1.25rem;
}
@media only screen and (max-width: 550px) {
  .price-list__download-button {
    margin-bottom: 0.3125rem;
  }
}
.price-list__trigger {
  cursor: pointer;
  margin-bottom: 1.25rem;
}
.price-list__trigger.is-active i {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.price-list__form-row {
  margin-bottom: 1.25rem;
}
.price-list__label {
  padding-right: 1.25rem;
  text-align: right;
  line-height: 2.1875rem;
}
.price-list__actions {
  margin-top: 1.25rem;
}
.price-list__actions-button {
  margin-bottom: 1.25rem;
  width: 100%;
}
@media only screen and (min-width: 550px) {
  .price-list__actions-button {
    width: auto;
  }
}
.price-list__actions-button:last-child {
  margin-bottom: 0;
}
.price-list .info {
  margin-bottom: 1.25rem;
}
.price-list .notes {
  margin-bottom: 1.25rem;
}
.price-list .select2-selection__rendered {
  height: 2.1875rem;
  line-height: 2.1875rem;
}
.price-list__icon-box i {
  float: right;
}
.price-list__icon-box {
  font-size: 2rem;
  color: #E30613;
}
.price-list .modal_submit_button {
  color: #E30613;
  background-color: #fff;
}
.price-list .gpsr-headline {
  margin-bottom: 1.25rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductAttributeLabelWidget/Theme/default/components/molecules/attribute-group/attribute-group.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.attribute-group {
  line-height: 0;
  vertical-align: middle;
  left: 0;
  padding-left: 0.5rem;
  padding-top: 1rem;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 350;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  min-width: 18%;
  width: 18%;
}
.attribute-group__trigger {
  position: absolute;
  top: 34px;
  left: -5px;
  color: black;
}
.attribute-group__trigger--pdp {
  position: relative;
  top: 0.08125rem;
  left: 0;
  color: white;
}
.attribute-group__text {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.5rem;
  background-color: #E30613;
  color: #fff;
  padding: 0.1875rem 0.9375rem;
  font-weight: 500;
}
.attribute-group__text--graduated-prices {
  font-size: 1rem;
  color: #fff;
  background-color: #6ca52f;
}
.attribute-group__tooltip {
  position: relative;
}
.attribute-group__tooltip .fal {
  margin-left: 0.3375rem;
}
.attribute-group__tooltip .tooltip-info {
  color: #000;
}
.attribute-group--pdp {
  padding: 0;
  position: relative;
  display: inline-block;
  top: -0.125rem;
  width: auto;
  min-width: auto;
}
.attribute-group--plp {
  top: 2.1875rem;
  padding: 1rem;
}
.attribute-group--hidden {
  display: none;
}

.label-group--hidden + .attribute-group--plp {
  top: 0;
  padding-left: 0.5rem;
  padding-top: 1rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductCompareSuk/Theme/default/components/molecules/compare-attributes/compare-attributes.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-compare__attributes {
  background: #fff;
  font-size: 0.9375rem;
  margin-top: 1.25rem;
  padding: 0.9375rem;
}
.product-compare__attributes-title:nth-child(odd), .product-compare__attributes-row:nth-child(odd) {
  background: #F7F7F9;
}
.product-compare__attributes-row {
  padding: 0 0.3125rem;
}
.product-compare__attributes-title {
  font-weight: 500;
}
.product-compare__attributes-group-title {
  font-size: 1.125rem;
  white-space: nowrap;
}
.product-compare__attributes-group-title:not(:first-of-type) {
  margin-top: 1.5625rem;
}
.product-compare__attributes-slider.slick-carousel--equal-height .slick-slide {
  margin: 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductCompareSuk/Theme/default/components/molecules/compare-info/compare-info.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-compare__info {
  background: #fff;
  font-size: 0.9375rem;
  padding: 0.9375rem;
}
@media print {
  .product-compare__info {
    display: none;
  }
}
.product-compare__info-hr {
  margin: 1.25rem 0;
}
.product-compare__info-title {
  font-weight: 500;
}
.product-compare__info-print, .product-compare__info-clear {
  margin: 0.3125rem 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductCompareSuk/Theme/default/components/molecules/compare-item/compare-item.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-compare__item {
  background: #fff;
  padding: 0.9375rem;
  position: relative;
}
.product-compare__item-remove {
  display: inline-block;
  position: absolute;
  right: 0.9375rem;
  z-index: 1;
}
.product-compare__item-slider {
  padding-left: 0.9375rem;
}
.product-compare__item-slider .slick-prev i,
.product-compare__item-slider .slick-next i {
  font-family: "Font Awesome 5 Pro";
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
.product-compare__item-slider .slick-prev i:before,
.product-compare__item-slider .slick-next i:before {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: inherit;
}
.product-compare__item-slider .slick-prev i:before {
  content: "\f053";
}
.product-compare__item-slider .slick-next i:before {
  content: "\f054";
}
.product-compare__link--title {
  display: inline-block;
  font-size: 1.25rem;
  font-weight: 500;
  color: #666666;
  line-height: 1.5rem;
  margin-bottom: 1.25rem;
}
.product-compare__price {
  margin-bottom: 1.25rem;
}
.product-compare__details {
  font-size: 0.9375rem;
  margin-bottom: 1.25rem;
}
.product-compare .button--transparent {
  cursor: pointer;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDiscontinuedWidget/Theme/default/components/atoms/product-discontinued-note/product-discontinued-note.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-discontinued-note__title {
  font-size: 1rem;
  font-weight: 500;
  line-height: 3.375rem;
  color: #666666;
}
.product-discontinued-note__text {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: normal;
  color: #8f8f8f;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./node_modules/slick-carousel/slick/slick.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductImageWidget/Theme/default/components/molecules/image-gallery/image-gallery.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.image-gallery {
  background: #fff;
  position: relative;
}
@media only screen and (min-width: 770px) {
  .image-gallery {
    background: none;
  }
}
.image-gallery__container {
  height: 15.625rem;
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 770px) {
  .image-gallery__container {
    height: 540px;
  }
}
.image-gallery__item {
  -webkit-transition: opacity 250ms ease-in-out;
  transition: opacity 250ms ease-in-out;
  position: absolute;
  left: 0;
  top: 0;
  padding: 35px;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  opacity: 0;
  z-index: -1;
  pointer-events: none;
}
@media only screen and (min-width: 770px) {
  .image-gallery__item--left-indent {
    padding-left: 155px;
  }
}
.image-gallery__item--active, .image-gallery__item--color-active {
  opacity: 1;
  z-index: 1;
  pointer-events: auto;
}
.image-gallery__item.has--icon {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print {
  .image-gallery__item.has--icon {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.image-gallery__image {
  max-width: 100%;
  max-height: 100%;
}
.image-gallery__icon {
  font-size: 3.75rem;
  min-height: 10rem;
  padding-top: 3.125rem;
}
@media only screen and (min-width: 770px) {
  .image-gallery__icon {
    min-height: 17.5rem;
    padding-top: 6.875rem;
  }
}
.image-gallery__badge {
  width: 6rem;
  height: 6rem;
  position: absolute;
  right: 2.1875rem;
  top: 2.1875rem;
  z-index: 2;
  pointer-events: none;
}
.image-gallery__thumbnail {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
@media only screen and (min-width: 770px) {
  .image-gallery__thumbnail {
    display: block;
    left: 5px;
    background-color: #F8F8F8;
    padding-right: 10px;
    width: 130px;
  }
}
@media print {
  .image-gallery__thumbnail {
    display: block;
    left: 5px;
    background-color: transparent;
    padding-right: 10px;
    width: 130px;
  }
}
.image-gallery__thumbnail-item {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 90px;
  padding: 5px;
  background: #fff;
  position: relative;
  cursor: pointer;
}
@media print {
  .image-gallery__thumbnail-item {
    border: 2px solid #F8F8F8;
  }
}
.image-gallery__thumbnail .thumb-prev,
.image-gallery__thumbnail .thumb-next {
  padding: 5px 0 0;
  text-align: center;
  cursor: pointer;
  display: block;
  width: 20px;
  position: absolute;
  top: calc(50% - 10px);
}
@media only screen and (min-width: 770px) {
  .image-gallery__thumbnail .thumb-prev,
  .image-gallery__thumbnail .thumb-next {
    position: static;
    width: auto;
  }
}
.image-gallery__thumbnail .thumb-prev svg,
.image-gallery__thumbnail .thumb-next svg {
  display: block;
  width: 100%;
  height: 7px;
  color: #666666;
}
.image-gallery__thumbnail .thumb-prev[aria-disabled=true],
.image-gallery__thumbnail .thumb-next[aria-disabled=true] {
  cursor: default;
  pointer-events: none;
}
.image-gallery__thumbnail .thumb-prev[aria-disabled=true] svg,
.image-gallery__thumbnail .thumb-next[aria-disabled=true] svg {
  color: rgba(255, 255, 255, 0);
}
.image-gallery__thumbnail .thumb-prev.slick-disabled,
.image-gallery__thumbnail .thumb-next.slick-disabled {
  cursor: not-allowed;
}
.image-gallery__thumbnail .thumb-prev {
  padding: 0 0 5px;
  margin-bottom: 15px;
  left: 15px;
}
.image-gallery__thumbnail .thumb-prev svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
@media only screen and (min-width: 770px) {
  .image-gallery__thumbnail .thumb-prev svg {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
}
.image-gallery__thumbnail .thumb-next {
  right: 15px;
  margin-top: 15px;
}
.image-gallery__thumbnail .thumb-next svg {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}
@media only screen and (min-width: 770px) {
  .image-gallery__thumbnail .thumb-next svg {
    -webkit-transform: none;
            transform: none;
  }
}
.image-gallery__thumbnail .slick-slide {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: none !important;
  padding: 5px 10px;
}
.image-gallery__thumbnail .slick-slide.image-gallery__thumbnail-item {
  -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.75);
          box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.75);
  margin-top: 0.1875rem;
}
.image-gallery__thumbnail .slick-current .image-gallery__thumbnail-item {
  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.image-gallery__zoom-lens {
  position: absolute;
  display: none;
  background-color: rgba(227, 6, 19, 0.15);
  width: 50px;
  height: 50px;
  border: 1px solid #E30613;
  border-radius: 1px;
  pointer-events: none;
}
.zoom-active .image-gallery__zoom-lens {
  display: block;
}
@media only screen and (max-width: 768px) {
  .image-gallery__zoom-lens {
    display: none;
  }
}
.image-gallery-zoom-window {
  position: absolute;
  display: none;
  top: 0;
  left: 100%;
  padding: 0 20px 20px 0;
  z-index: 500;
  background-color: #fff;
}
.zoom-active .image-gallery-zoom-window {
  display: block;
}
@media only screen and (max-width: 768px) {
  .image-gallery-zoom-window {
    display: none;
  }
}
.image-gallery-zoom-window__inner {
  height: 100%;
  overflow: hidden;
  border: 1px solid #C7C7C7;
  border-radius: 2px;
  -webkit-box-shadow: rgba(0, 0, 0, 0.25) 0 6px 8px 2px;
          box-shadow: rgba(0, 0, 0, 0.25) 0 6px 8px 2px;
}
.image-gallery-zoom-window__inner img {
  max-height: none;
  max-width: none;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductOptionWidget/Theme/default/components/molecules/option-display/option-display.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.option-display__item {
  display: block;
  line-height: 1.125rem;
  margin-bottom: 0.4375rem;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductOptionWidget/Theme/default/components/molecules/product-options/product-options.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-options {
  border-bottom: solid 1px #e7eaee;
}
.product-options__item {
  border-top: solid 1px #e7eaee;
}
.product-options__title {
  font-size: 1rem;
  font-weight: 500;
  line-height: 3.375rem;
  color: #666666;
  position: relative;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.product-options__title::before, .product-options__title::after {
  content: "";
  background: #666666;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.product-options__title::before {
  width: 10px;
  height: 2px;
  right: 18px;
}
.product-options__title::after {
  width: 2px;
  height: 10px;
  right: 22px;
}
.product-options__title.active::after {
  display: none;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductPackagingUnitWidget/Theme/default/components/molecules/measurement-unit/measurement-unit.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.measurement-unit, .packaging-unit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.0625rem;
}
.measurement-unit__label, .packaging-unit__label {
  min-width: 4.6875rem;
  padding-right: 0.9375rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: normal;
  color: #666666;
}
.measurement-unit-choice, .packaging-unit-choice {
  border-radius: 2px;
  background-color: #fff;
  padding: 1.0625rem 1rem 1.3125rem;
  margin-bottom: 1.0625rem;
  -webkit-box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.47;
  color: #8f8f8f;
}
.measurement-unit-choice__list, .packaging-unit-choice__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-top: 0.875rem;
}
.measurement-unit-choice__list .link, .packaging-unit-choice__list .link {
  border-radius: 2px;
  background: rgba(227, 6, 19, 0.1);
  color: #E30613;
  padding: 0.1875rem 0.8125rem;
  margin-right: 0.625rem;
  display: inline-block;
}
.measurement-unit-choice__list .link:hover, .packaging-unit-choice__list .link:hover {
  background: #E30613;
  color: #fff;
  text-decoration: none;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductPackagingUnitWidget/Theme/default/components/molecules/product-packaging-new-price/product-packaging-new-price.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-packaging-new-price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 17px;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductSearchWidget/Theme/default/components/molecules/product-search-autocomplete-form/product-search-autocomplete-form.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-search-autocomplete-form {
  position: relative;
}
.product-search-autocomplete-form__suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 3;
  margin: 0;
}
.product-search-autocomplete-form__item {
  cursor: pointer;
  padding: 0.5rem;
}
.product-search-autocomplete-form__item:hover {
  background-color: #8f8f8f;
}
.product-search-autocomplete-form__field {
  position: relative;
  z-index: 350;
}
.product-search-autocomplete-form__search-icon {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.product-search-autocomplete-form__input {
  -webkit-transition: background-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out;
  padding: 0.9375rem 2.25rem 0.9375rem 2.375rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 2px;
  -webkit-box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
}
.product-search-autocomplete-form__input--no-icon {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.product-search-autocomplete-form__input:focus {
  border: none;
  background-color: #e7eaee;
}
.product-search-autocomplete-form__suggestions {
  margin: 0;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: #fff;
  padding: 0.625rem 1.125rem;
  font-size: 0.875rem;
  line-height: 2;
  border-radius: 0 0 2px 2px;
  -webkit-box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
  max-height: 30rem;
  overflow-x: hidden;
  z-index: 703;
}
.product-search-autocomplete-form__clean-button {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  padding-right: 0.75rem;
  color: #666666;
}
.product-search-autocomplete-form__clean-button:hover, .product-search-autocomplete-form__clean-button:focus {
  color: #666666;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductSetWidget/Theme/default/components/organisms/product-set/product-set.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-set__banner {
  color: #fff;
  font-size: 2.375rem;
  line-height: 3.25rem;
}
.product-set__add-to-cart {
  position: relative;
  z-index: 2;
}
.product-set__variant-configurator {
  position: relative;
  z-index: 3;
}
.product-set__variant, .product-set__variant:first-child {
  border: none;
}
.product-set__variant .custom-select--pdp-option, .product-set__variant:first-child .custom-select--pdp-option {
  margin-bottom: 0;
}
.product-set--widget {
  padding-bottom: 5rem;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProjectRequestWidget/Theme/default/components/molecules/project-order-form/project-order-form.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
@media only screen and (min-width: 1024px) {
  .project-order-form__address-container {
    margin-right: 1rem;
  }
}
@media only screen and (min-width: 1024px) {
  .project-order-form__products-container {
    margin-left: 1rem;
  }
}
.project-order-form .border-right {
  position: relative;
}
@media only screen and (min-width: 1024px) {
  .project-order-form .border-right::after {
    content: "";
    position: absolute;
    top: 50%;
    bottom: 50%;
    right: 0;
    height: 90%;
    width: 2px;
    background-color: #E7E7E7;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProjectRequestWidget/Theme/default/components/molecules/project-order-product-list/project-order-product-list.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-order-product-list .checkbox__container {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.project-order-product-list .checkbox__label--name {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
.project-order-product-list .quantity {
  font-weight: 500;
}
.project-order-product-list .quantity .remaining-quantity--success {
  color: #6CA52F;
}
.project-order-product-list .quantity .remaining-quantity--danger {
  color: #E30613;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProjectRequestWidget/Theme/default/components/molecules/project-request-form/project-request-form.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
@media only screen and (min-width: 1024px) {
  .project-request-form__address-container {
    margin-right: 1rem;
  }
}
@media only screen and (min-width: 1024px) {
  .project-request-form__products-container {
    margin-left: 1rem;
  }
}
.project-request-form .border-right {
  position: relative;
}
@media only screen and (min-width: 1024px) {
  .project-request-form .border-right::after {
    content: "";
    position: absolute;
    top: 50%;
    bottom: 50%;
    right: 0;
    height: 90%;
    width: 2px;
    background-color: #E7E7E7;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProjectRequestWidget/Theme/default/components/molecules/project-request-product-list/project-request-product-list.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-request-product-list .list--checkbox {
  max-height: 25rem;
  overflow-y: auto;
}
.project-request-product-list .checkbox__container {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.project-request-product-list .checkbox__label--name {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-file-upload/quick-order-file-upload.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-file-upload {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
  border-radius: 2px;
  height: 100%;
}
.quick-order-file-upload__content {
  font-size: 0.875rem;
  letter-spacing: -0.00625rem;
  font-weight: 400;
}
@media only screen and (min-width: 768px) {
  .quick-order-file-upload__content {
    letter-spacing: 0;
    font-size: 0.8125rem;
  }
}
.quick-order-file-upload__title {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 500;
}
.quick-order-file-upload__browse-file-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}
.quick-order-file-upload__file-select {
  font-size: 0.6875rem;
  font-weight: 500;
  text-transform: uppercase;
}
.quick-order-file-upload__download-link {
  position: relative;
  display: inline-block;
  padding-left: 2.0625rem;
  color: #8f8f8f;
  font-weight: 500;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/QuickOrderPage/Theme/default/components/molecules/quick-order-text-order-form/quick-order-text-order-form.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quick-order-text-order-form {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
  border-radius: 2px;
  height: 100%;
}
.quick-order-text-order-form__content {
  font-size: 0.875rem;
  letter-spacing: -0.00625rem;
  font-weight: 400;
}
@media only screen and (min-width: 768px) {
  .quick-order-text-order-form__content {
    letter-spacing: 0;
    font-size: 0.8125rem;
  }
}
.quick-order-text-order-form__title {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 500;
}
.quick-order-text-order-form .textarea {
  min-height: 7.5rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/RealtimePriceWidget/Theme/default/components/molecules/price-fetcher/price-fetcher.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
@-webkit-keyframes rotate-center {
  0% {
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
            transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg);
            transform: translate(-50%, -50%) rotate(360deg);
  }
}
@keyframes rotate-center {
  0% {
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
            transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg);
            transform: translate(-50%, -50%) rotate(360deg);
  }
}
.price-fetcher {
  position: relative;
}
.price-fetcher--is-loading .price-fetcher__box,
.price-fetcher--is-loading .price-fetcher__box:after {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.price-fetcher--is-loading .price-fetcher__content {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}
.price-fetcher--new-price-applied .price-fetcher__box,
.price-fetcher--new-price-applied .price-fetcher__tooltip {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.price-fetcher--new-price-applied .price-fetcher__title span {
  color: #6CA52F;
}
@media only screen and (min-width: 970px) {
  .price-fetcher--listing, .price-fetcher--shopping-list {
    margin-right: -1.25rem;
    margin-top: -1.25rem;
  }
  .price-fetcher--listing .price-fetcher__box:before, .price-fetcher--shopping-list .price-fetcher__box:before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 5px 0 0;
    border-color: #000 transparent transparent transparent;
    position: absolute;
    right: -0.0625rem;
    bottom: -0.375rem;
  }
}
.price-fetcher--listing .price-fetcher__box, .price-fetcher--shopping-list .price-fetcher__box {
  font-size: 1rem;
  padding: 0.25rem 0rem;
}
.price-fetcher--listing .price-fetcher__quantity, .price-fetcher--shopping-list .price-fetcher__quantity {
  font-size: 0.875rem;
}
.price-fetcher--listing .price-fetcher__tooltip, .price-fetcher--shopping-list .price-fetcher__tooltip {
  right: 5px;
  bottom: 0;
}
@media only screen and (min-width: 970px) {
  .price-fetcher--shopping-list {
    margin-top: -3.5rem;
    margin-right: -2.1875rem;
  }
}
.price-fetcher__box {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  font-size: 1.25rem;
  background-color: #fff;
  border: 1px solid #000;
  margin-bottom: 0.4375rem;
  padding: 0.5rem 0.75rem;
  text-align: center;
  word-wrap: break-word;
  position: relative;
}
.price-fetcher__box:after {
  -webkit-transition: opacity 250ms ease-in-out;
  transition: opacity 250ms ease-in-out;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-animation: rotate-center 2s infinite linear;
          animation: rotate-center 2s infinite linear;
  content: "\f110";
  display: inline-block;
  font-family: "Font Awesome 5 Pro";
  font-size: 32px;
  font-weight: 300;
  left: 50%;
  position: absolute;
  top: 50%;
}
.price-fetcher__content {
  -webkit-transition: opacity 250ms ease-in-out;
  transition: opacity 250ms ease-in-out;
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  line-height: 1;
}
.price-fetcher__title {
  display: block;
  font-weight: 500;
  line-height: 1;
  padding-top: 0.1875rem;
  text-transform: uppercase;
}
.price-fetcher__title span {
  color: #E30613;
}
.price-fetcher__tooltip {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
  bottom: 0;
  right: 5px;
  z-index: 600;
}
.price-fetcher__tooltip:hover .price-fetcher__tooltip-content {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.price-fetcher__tooltip-content {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
  background: #fff;
  border: 1px solid;
  margin-right: 0.3125rem;
  padding: 0.4375rem 0.875rem;
  position: absolute;
  right: 100%;
  text-align: left;
  top: 50%;
  -webkit-transform: translate(-10px, -50%);
          transform: translate(-10px, -50%);
  width: 12.5rem;
}
.price-fetcher__tooltip-content:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-color: transparent transparent transparent #666666;
  position: absolute;
  top: 50%;
  right: -6px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  margin-top: -3px;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/SalesOrderThresholdWidget/Theme/default/components/molecules/sales-order-threshold-expense/sales-order-threshold-expense.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.sales-order-threshold-expense__text {
  color: #8f8f8f;
}
.sales-order-threshold-expense__text--cart {
  color: #666666;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/SalesOrderThresholdWidget/Theme/default/components/molecules/sales-order-threshold-expense-list/sales-order-threshold-expense-list.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.sales-order-threshold-expense-list--cart {
  margin: 0.5rem -1.25rem 0;
  padding: 0 1.25rem 1.0625rem;
  border-bottom: 1px solid #dce0e5;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListNoteWidget/Theme/default/components/molecules/shopping-list-note/shopping-list-note.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-note {
  margin-top: 1rem;
}
.shopping-list-note__container {
  background-color: #f0f0f0;
  padding: 1.0625rem 1.25rem;
}
.shopping-list-note__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0.4375rem;
}
.shopping-list-note__text {
  color: #8f8f8f;
  font-size: 0.8125rem;
  line-height: 2.23;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListPage/Theme/default/components/molecules/share-list-item/share-list-item.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-item {
  background-color: #f0f0f0;
  margin-bottom: 0.3125rem;
  padding-left: 1.875rem;
  border-radius: 2px;
}
.shopping-list-item__label {
  color: #666666;
  line-height: 2.1875rem;
}
.shopping-list-item select,
.shopping-list-item .select2-selection__rendered {
  border: none;
  background-color: rgba(255, 255, 255, 0);
  text-align: right;
  padding-right: 3.125rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShoppingListPage/Theme/default/components/molecules/shopping-list-overview-table/shopping-list-overview-table.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.shopping-list-overview-table__title {
  color: #666666;
  font-weight: 500;
}
.shopping-list-overview-table th:first-child {
  padding-left: 3.375rem;
}
.shopping-list-overview-table tr:last-child {
  border-bottom: 1px solid #e7eaee;
}
.shopping-list-overview-table .title--link {
  word-break: break-word;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/styles/util.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/**
 * Provides global class names for spacings.
 */
/**
 * Provides global class names for text styling.
 */
/**
 * Provides class name for text styling with color property specified by parameters.
 * @param {String} $action Sets class name postfix.
 * @param {Color} $setting-color-action Sets color property.
 * @content Extendable mixin.
 */
/**
 * Provides global class names for the elements' float alignment.
 */
/**
 * Provides global class names for display behavior with additional responsive modifiers.
 */
.spacing {
  margin: 0.5rem;
}
.spacing--biggest {
  margin: 2rem;
}
.spacing--bigger {
  margin: 1.5rem;
}
.spacing--big {
  margin: 1rem;
}
.spacing--small {
  margin: 0.25rem;
}
.spacing--reset {
  margin: 0;
}
.spacing--auto {
  margin: auto;
}

.spacing--inner {
  margin: 0;
  padding: 0.5rem;
}
.spacing--inner.spacing--biggest {
  margin: 0;
  padding: 2rem;
}

.spacing--inner.spacing--bigger {
  margin: 0;
  padding: 1.5rem;
}

.spacing--inner.spacing--big {
  margin: 0;
  padding: 1rem;
}

.spacing--inner.spacing--small {
  margin: 0;
  padding: 0.25rem;
}

.spacing--inner.spacing--reset {
  margin: 0;
  padding: 0;
}

.spacing--inner.spacing--auto {
  margin: 0;
  padding: auto;
}

.spacing-top {
  margin-top: 0.5rem;
}
.spacing-top--biggest {
  margin-top: 2rem;
}
.spacing-top--bigger {
  margin-top: 1.5rem;
}
.spacing-top--big {
  margin-top: 1rem;
}
.spacing-top--small {
  margin-top: 0.25rem;
}
.spacing-top--reset {
  margin-top: 0;
}
.spacing-top--auto {
  margin-top: auto;
}

.spacing-top--inner {
  margin-top: 0;
  padding-top: 0.5rem;
}
.spacing-top--inner.spacing-top--biggest {
  margin-top: 0;
  padding-top: 2rem;
}

.spacing-top--inner.spacing-top--bigger {
  margin-top: 0;
  padding-top: 1.5rem;
}

.spacing-top--inner.spacing-top--big {
  margin-top: 0;
  padding-top: 1rem;
}

.spacing-top--inner.spacing-top--small {
  margin-top: 0;
  padding-top: 0.25rem;
}

.spacing-top--inner.spacing-top--reset {
  margin-top: 0;
  padding-top: 0;
}

.spacing-top--inner.spacing-top--auto {
  margin-top: 0;
  padding-top: auto;
}

.spacing-bottom {
  margin-bottom: 0.5rem;
}
.spacing-bottom--biggest {
  margin-bottom: 2rem;
}
.spacing-bottom--bigger {
  margin-bottom: 1.5rem;
}
.spacing-bottom--big {
  margin-bottom: 1rem;
}
.spacing-bottom--small {
  margin-bottom: 0.25rem;
}
.spacing-bottom--reset {
  margin-bottom: 0;
}
.spacing-bottom--auto {
  margin-bottom: auto;
}

.spacing-bottom--inner {
  margin-bottom: 0;
  padding-bottom: 0.5rem;
}
.spacing-bottom--inner.spacing-bottom--biggest {
  margin-bottom: 0;
  padding-bottom: 2rem;
}

.spacing-bottom--inner.spacing-bottom--bigger {
  margin-bottom: 0;
  padding-bottom: 1.5rem;
}

.spacing-bottom--inner.spacing-bottom--big {
  margin-bottom: 0;
  padding-bottom: 1rem;
}

.spacing-bottom--inner.spacing-bottom--small {
  margin-bottom: 0;
  padding-bottom: 0.25rem;
}

.spacing-bottom--inner.spacing-bottom--reset {
  margin-bottom: 0;
  padding-bottom: 0;
}

.spacing-bottom--inner.spacing-bottom--auto {
  margin-bottom: 0;
  padding-bottom: auto;
}

.spacing-left {
  margin-left: 0.5rem;
}
.spacing-left--biggest {
  margin-left: 2rem;
}
.spacing-left--bigger {
  margin-left: 1.5rem;
}
.spacing-left--big {
  margin-left: 1rem;
}
.spacing-left--small {
  margin-left: 0.25rem;
}
.spacing-left--reset {
  margin-left: 0;
}
.spacing-left--auto {
  margin-left: auto;
}

.spacing-left--inner {
  margin-left: 0;
  padding-left: 0.5rem;
}
.spacing-left--inner.spacing-left--biggest {
  margin-left: 0;
  padding-left: 2rem;
}

.spacing-left--inner.spacing-left--bigger {
  margin-left: 0;
  padding-left: 1.5rem;
}

.spacing-left--inner.spacing-left--big {
  margin-left: 0;
  padding-left: 1rem;
}

.spacing-left--inner.spacing-left--small {
  margin-left: 0;
  padding-left: 0.25rem;
}

.spacing-left--inner.spacing-left--reset {
  margin-left: 0;
  padding-left: 0;
}

.spacing-left--inner.spacing-left--auto {
  margin-left: 0;
  padding-left: auto;
}

.spacing-right {
  margin-right: 0.5rem;
}
.spacing-right--biggest {
  margin-right: 2rem;
}
.spacing-right--bigger {
  margin-right: 1.5rem;
}
.spacing-right--big {
  margin-right: 1rem;
}
.spacing-right--small {
  margin-right: 0.25rem;
}
.spacing-right--reset {
  margin-right: 0;
}
.spacing-right--auto {
  margin-right: auto;
}

.spacing-right--inner {
  margin-right: 0;
  padding-right: 0.5rem;
}
.spacing-right--inner.spacing-right--biggest {
  margin-right: 0;
  padding-right: 2rem;
}

.spacing-right--inner.spacing-right--bigger {
  margin-right: 0;
  padding-right: 1.5rem;
}

.spacing-right--inner.spacing-right--big {
  margin-right: 0;
  padding-right: 1rem;
}

.spacing-right--inner.spacing-right--small {
  margin-right: 0;
  padding-right: 0.25rem;
}

.spacing-right--inner.spacing-right--reset {
  margin-right: 0;
  padding-right: 0;
}

.spacing-right--inner.spacing-right--auto {
  margin-right: 0;
  padding-right: auto;
}

.spacing-x {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.spacing-x--biggest {
  margin-left: 2rem;
  margin-right: 2rem;
}
.spacing-x--bigger {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.spacing-x--big {
  margin-left: 1rem;
  margin-right: 1rem;
}
.spacing-x--small {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.spacing-x--reset {
  margin-left: 0;
  margin-right: 0;
}
.spacing-x--auto {
  margin-left: auto;
  margin-right: auto;
}

.spacing-x--inner {
  margin-left: 0;
  padding-left: 0.5rem;
  margin-right: 0;
  padding-right: 0.5rem;
}
.spacing-x--inner.spacing-x--biggest {
  margin-left: 0;
  padding-left: 2rem;
  margin-right: 0;
  padding-right: 2rem;
}

.spacing-x--inner.spacing-x--bigger {
  margin-left: 0;
  padding-left: 1.5rem;
  margin-right: 0;
  padding-right: 1.5rem;
}

.spacing-x--inner.spacing-x--big {
  margin-left: 0;
  padding-left: 1rem;
  margin-right: 0;
  padding-right: 1rem;
}

.spacing-x--inner.spacing-x--small {
  margin-left: 0;
  padding-left: 0.25rem;
  margin-right: 0;
  padding-right: 0.25rem;
}

.spacing-x--inner.spacing-x--reset {
  margin-left: 0;
  padding-left: 0;
  margin-right: 0;
  padding-right: 0;
}

.spacing-x--inner.spacing-x--auto {
  margin-left: 0;
  padding-left: auto;
  margin-right: 0;
  padding-right: auto;
}

.spacing-y {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.spacing-y--biggest {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.spacing-y--bigger {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.spacing-y--big {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.spacing-y--small {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.spacing-y--reset {
  margin-top: 0;
  margin-bottom: 0;
}
.spacing-y--auto {
  margin-top: auto;
  margin-bottom: auto;
}

.spacing-y--inner {
  margin-top: 0;
  padding-top: 0.5rem;
  margin-bottom: 0;
  padding-bottom: 0.5rem;
}
.spacing-y--inner.spacing-y--biggest {
  margin-top: 0;
  padding-top: 2rem;
  margin-bottom: 0;
  padding-bottom: 2rem;
}

.spacing-y--inner.spacing-y--bigger {
  margin-top: 0;
  padding-top: 1.5rem;
  margin-bottom: 0;
  padding-bottom: 1.5rem;
}

.spacing-y--inner.spacing-y--big {
  margin-top: 0;
  padding-top: 1rem;
  margin-bottom: 0;
  padding-bottom: 1rem;
}

.spacing-y--inner.spacing-y--small {
  margin-top: 0;
  padding-top: 0.25rem;
  margin-bottom: 0;
  padding-bottom: 0.25rem;
}

.spacing-y--inner.spacing-y--reset {
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

.spacing-y--inner.spacing-y--auto {
  margin-top: 0;
  padding-top: auto;
  margin-bottom: 0;
  padding-bottom: auto;
}

.text-small {
  font-size: 0.875rem;
}

.text-big {
  font-size: 1.125rem;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-alt {
  color: #E30613;
}

.text-secondary {
  color: #8f8f8f;
}

.text-break {
  word-break: break-word;
}

.text-success {
  color: #1ebea0;
}

.text-warning {
  color: #fdbe36;
}

.text-alert {
  color: #E30613;
}

.clear::after {
  content: "";
  display: table;
  clear: both;
}

.float-left {
  float: left;
}

.float-right {
  float: right;
}

.float-none {
  float: none;
}

.is-hidden {
  display: none;
}
@media only screen and (min-width: 0) and (max-width: 549px) {
  .is-hidden-sm-only {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 769px) {
  .is-hidden-sm-md {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 969px) {
  .is-hidden-sm-lg {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 1203px) {
  .is-hidden-sm-xl {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 1299px) {
  .is-hidden-sm-xxl {
    display: none;
  }
}
@media only screen and (min-width: 0) {
  .is-hidden-sm-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 1024px) {
  .is-hidden-sm-desktop {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 1023px) {
  .is-hidden-sm-desktopBefore {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 769px) {
  .is-hidden-md-only {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 969px) {
  .is-hidden-md-lg {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 1203px) {
  .is-hidden-md-xl {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 1299px) {
  .is-hidden-md-xxl {
    display: none;
  }
}
@media only screen and (min-width: 550px) {
  .is-hidden-md-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 1024px) {
  .is-hidden-md-desktop {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 1023px) {
  .is-hidden-md-desktopBefore {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 969px) {
  .is-hidden-lg-only {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 1203px) {
  .is-hidden-lg-xl {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 1299px) {
  .is-hidden-lg-xxl {
    display: none;
  }
}
@media only screen and (min-width: 770px) {
  .is-hidden-lg-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 1024px) {
  .is-hidden-lg-desktop {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 1023px) {
  .is-hidden-lg-desktopBefore {
    display: none;
  }
}
@media only screen and (min-width: 970px) and (max-width: 1203px) {
  .is-hidden-xl-only {
    display: none;
  }
}
@media only screen and (min-width: 970px) and (max-width: 1299px) {
  .is-hidden-xl-xxl {
    display: none;
  }
}
@media only screen and (min-width: 970px) {
  .is-hidden-xl-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 970px) and (max-width: 1024px) {
  .is-hidden-xl-desktop {
    display: none;
  }
}
@media only screen and (min-width: 970px) and (max-width: 1023px) {
  .is-hidden-xl-desktopBefore {
    display: none;
  }
}
@media only screen and (min-width: 1204px) and (max-width: 1299px) {
  .is-hidden-xxl-only {
    display: none;
  }
}
@media only screen and (min-width: 1204px) {
  .is-hidden-xxl-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 1300px) {
  .is-hidden-xxxl-only {
    display: none;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1024px) {
  .is-hidden-desktop-only {
    display: none;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1299px) {
  .is-hidden-desktop-xxl {
    display: none;
  }
}
@media only screen and (min-width: 1024px) {
  .is-hidden-desktop-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 1023px) and (max-width: 1023px) {
  .is-hidden-desktopBefore-only {
    display: none;
  }
}
@media only screen and (min-width: 1023px) and (max-width: 1299px) {
  .is-hidden-desktopBefore-xxl {
    display: none;
  }
}
@media only screen and (min-width: 1023px) {
  .is-hidden-desktopBefore-xxxl {
    display: none;
  }
}
@media only screen and (min-width: 1023px) and (max-width: 1024px) {
  .is-hidden-desktopBefore-desktop {
    display: none;
  }
}

.is-visible {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}

.is-invisible {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}

.is-scrollable {
  overflow: auto;
}

.is-not-scrollable {
  overflow: hidden;
}

.is-scrollable-x {
  overflow-x: auto;
}

.is-not-scrollable-x {
  overflow-x: hidden;
}

.is-scrollable-y {
  overflow-y: auto;
}

.is-not-scrollable-y {
  overflow-y: hidden;
}

html > .is-locked-tablet,
html > .is-locked-mobile,
html > .is-locked {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  overflow: hidden;
  height: 100%;
}
@media only screen and (min-width: 968px) {
  html > .is-locked-tablet {
    overflow: visible;
    position: static;
  }
}
@media only screen and (min-width: 768px) {
  html > .is-locked-mobile {
    overflow: visible;
    position: static;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jc3MveXZlc19kZWZhdWx0Lm5vbi1jcml0aWNhbC5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FDOE5KOztBRDNOQTtFQUNJO0FDOE5KOztBQ3BPSTtFQURKO0lBRVE7RUR3T047QUFDRjs7QUNyT0E7RUFDSTtFQUNBO0VBQ0E7QUR3T0o7QUN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFRHlPTjtBQUNGOztBQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFRHVPZDtFQ3pPVTtJQUNJO0lBQ0E7RUQyT2Q7RUM3T1U7SUFDSTtJQUNBO0VEK09kO0VDalBVO0lBQ0k7SUFDQTtFRG1QZDtFQ3JQVTtJQUNJO0lBQ0E7RUR1UGQ7RUN6UFU7SUFDSTtJQUNBO0VEMlBkO0VDN1BVO0lBQ0k7SUFDQTtFRCtQZDtFQ2pRVTtJQUNJO0lBQ0E7RURtUWQ7RUNyUVU7SUFDSTtJQUNBO0VEdVFkO0VDelFVO0lBQ0k7SUFDQTtFRDJRZDtFQzdRVTtJQUNJO0lBQ0E7RUQrUWQ7RUNqUlU7SUFDSTtJQUNBO0VEbVJkO0VDOVFFO0lBQ0k7RURnUk47QUFDRjtBQzNRUTtFQURKO0lBRVE7RUQ4UVY7QUFDRjs7QUVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBSDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbkI3MUVnQjtFbUI4MUVoQixjSW41RVM7RUpvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBN3JIUTtFQUNJO0VBQ0E7QUE0V1o7QUF6V1E7RUFDSTtFQUNBO0FBMldaO0FBeFdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7VUFBQTtBQTBXWixDOzs7O0FuQmhaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QU04Tko7O0FOM05BO0VBQ0k7QU04Tko7O0FKcE9JO0VBREo7SUFFUTtFSXdPTjtBQUNGOztBSnJPQTtFQUNJO0VBQ0E7RUFDQTtBSXdPSjtBSnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VJeU9OO0FBQ0Y7O0FKdE9BO0VBR1k7SUFDSTtJQUNBO0VJdU9kO0VKek9VO0lBQ0k7SUFDQTtFSTJPZDtFSjdPVTtJQUNJO0lBQ0E7RUkrT2Q7RUpqUFU7SUFDSTtJQUNBO0VJbVBkO0VKclBVO0lBQ0k7SUFDQTtFSXVQZDtFSnpQVTtJQUNJO0lBQ0E7RUkyUGQ7RUo3UFU7SUFDSTtJQUNBO0VJK1BkO0VKalFVO0lBQ0k7SUFDQTtFSW1RZDtFSnJRVTtJQUNJO0lBQ0E7RUl1UWQ7RUp6UVU7SUFDSTtJQUNBO0VJMlFkO0VKN1FVO0lBQ0k7SUFDQTtFSStRZDtFSmpSVTtJQUNJO0lBQ0E7RUltUmQ7RUo5UUU7SUFDSTtFSWdSTjtBQUNGO0FKM1FRO0VBREo7SUFFUTtFSThRVjtBQUNGOztBSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4QjcxRWdCO0V3QjgxRWhCLGNEbjVFUztFQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0VBQ0E7RUFDQTtBQTkxR1o7QUFnMkdZO0VBQ0ksY0R2dUhJO0VDd3VISjtBQTkxR2hCLEM7Ozs7QXhCM1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBTzhOSjs7QVAzTkE7RUFDSTtBTzhOSjs7QUxwT0k7RUFESjtJQUVRO0VLd09OO0FBQ0Y7O0FMck9BO0VBQ0k7RUFDQTtFQUNBO0FLd09KO0FMdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RUt5T047QUFDRjs7QUx0T0E7RUFHWTtJQUNJO0lBQ0E7RUt1T2Q7RUx6T1U7SUFDSTtJQUNBO0VLMk9kO0VMN09VO0lBQ0k7SUFDQTtFSytPZDtFTGpQVTtJQUNJO0lBQ0E7RUttUGQ7RUxyUFU7SUFDSTtJQUNBO0VLdVBkO0VMelBVO0lBQ0k7SUFDQTtFSzJQZDtFTDdQVTtJQUNJO0lBQ0E7RUsrUGQ7RUxqUVU7SUFDSTtJQUNBO0VLbVFkO0VMclFVO0lBQ0k7SUFDQTtFS3VRZDtFTHpRVTtJQUNJO0lBQ0E7RUsyUWQ7RUw3UVU7SUFDSTtJQUNBO0VLK1FkO0VMalJVO0lBQ0k7SUFDQTtFS21SZDtFTDlRRTtJQUNJO0VLZ1JOO0FBQ0Y7QUwzUVE7RUFESjtJQUVRO0VLOFFWO0FBQ0Y7O0FKblRBOztFQUFBO0FDQUE7O0VBQUE7QUc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pCNzFFZ0I7RXlCODFFaEIsY0ZuNUVTO0VFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBLHlCRnR0SGU7RUV1dEhmO0FBNzFHUjtBQSsxR1E7RUFDSSxZdEI3ckhvQjtBc0JnV2hDO0FYcFZJO0VXb3JISTtJQUVRO0lBQUE7UUFBQTtZQUFBO0lBQ0E7RUE5MUdkO0FBQ0YsQzs7OztBekJqWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FROE5KOztBUjNOQTtFQUNJO0FROE5KOztBTnBPSTtFQURKO0lBRVE7RU13T047QUFDRjs7QU5yT0E7RUFDSTtFQUNBO0VBQ0E7QU13T0o7QU50T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFTXlPTjtBQUNGOztBTnRPQTtFQUdZO0lBQ0k7SUFDQTtFTXVPZDtFTnpPVTtJQUNJO0lBQ0E7RU0yT2Q7RU43T1U7SUFDSTtJQUNBO0VNK09kO0VOalBVO0lBQ0k7SUFDQTtFTW1QZDtFTnJQVTtJQUNJO0lBQ0E7RU11UGQ7RU56UFU7SUFDSTtJQUNBO0VNMlBkO0VON1BVO0lBQ0k7SUFDQTtFTStQZDtFTmpRVTtJQUNJO0lBQ0E7RU1tUWQ7RU5yUVU7SUFDSTtJQUNBO0VNdVFkO0VOelFVO0lBQ0k7SUFDQTtFTTJRZDtFTjdRVTtJQUNJO0lBQ0E7RU0rUWQ7RU5qUlU7SUFDSTtJQUNBO0VNbVJkO0VOOVFFO0lBQ0k7RU1nUk47QUFDRjtBTjNRUTtFQURKO0lBRVE7RU04UVY7QUFDRjs7QUxuVEE7O0VBQUE7QUNBQTs7RUFBQTtBSTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDMUI3MUVnQjtFMEI4MUVoQixjSG41RVM7RUdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSSx5QkhwdEhXO0VHcXRIWDtFQUNBO0FBOTFHWjtBQWcyR1k7RUFDSTtBQTkxR2hCO0FBZzJHZ0I7RUFDSTtBQTkxR3BCLEM7Ozs7QTFCN1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBUzhOSjs7QVQzTkE7RUFDSTtBUzhOSjs7QVBwT0k7RUFESjtJQUVRO0VPd09OO0FBQ0Y7O0FQck9BO0VBQ0k7RUFDQTtFQUNBO0FPd09KO0FQdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RU95T047QUFDRjs7QVB0T0E7RUFHWTtJQUNJO0lBQ0E7RU91T2Q7RVB6T1U7SUFDSTtJQUNBO0VPMk9kO0VQN09VO0lBQ0k7SUFDQTtFTytPZDtFUGpQVTtJQUNJO0lBQ0E7RU9tUGQ7RVByUFU7SUFDSTtJQUNBO0VPdVBkO0VQelBVO0lBQ0k7SUFDQTtFTzJQZDtFUDdQVTtJQUNJO0lBQ0E7RU8rUGQ7RVBqUVU7SUFDSTtJQUNBO0VPbVFkO0VQclFVO0lBQ0k7SUFDQTtFT3VRZDtFUHpRVTtJQUNJO0lBQ0E7RU8yUWQ7RVA3UVU7SUFDSTtJQUNBO0VPK1FkO0VQalJVO0lBQ0k7SUFDQTtFT21SZDtFUDlRRTtJQUNJO0VPZ1JOO0FBQ0Y7QVAzUVE7RUFESjtJQUVRO0VPOFFWO0FBQ0Y7O0FOblRBOztFQUFBO0FDQUE7O0VBQUE7QUs2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzNCNzFFZ0I7RTJCODFFaEIsY0puNUVTO0VJbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWxuQkk7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0FBL3RGUjtBQWl1RlE7RWpCemxHSjtFaUIybEdRLGNKL2xHVztBSWdZdkI7QUFrdUZRO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQWh1Rlo7QUFrdUZZO0VBQ0k7QUFodUZoQjtBQW91RlE7RUFDSTtFQUFBO0VBQUE7RUFDQTtBQWx1Rlo7QWJ6WEk7RWFta0dBO0lBcGdHUTtJQUFBO1FBQUE7WUFBQTtJQUNBO1FBQUE7WUFBQTtFQThUVjtBQUNGO0FBNVRRO0VBQ0k7RUFDQTtBQThUWjtBQTVUWTtFQUNJO0FBOFRoQjtBQTNUWTtFQUNJO0FBNlRoQjtBQXpUUTtFQUNJO01BQUE7VUFBQTtBQTJUWixDOzs7O0EzQjVhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QVU4Tko7O0FWM05BO0VBQ0k7QVU4Tko7O0FScE9JO0VBREo7SUFFUTtFUXdPTjtBQUNGOztBUnJPQTtFQUNJO0VBQ0E7RUFDQTtBUXdPSjtBUnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VReU9OO0FBQ0Y7O0FSdE9BO0VBR1k7SUFDSTtJQUNBO0VRdU9kO0VSek9VO0lBQ0k7SUFDQTtFUTJPZDtFUjdPVTtJQUNJO0lBQ0E7RVErT2Q7RVJqUFU7SUFDSTtJQUNBO0VRbVBkO0VSclBVO0lBQ0k7SUFDQTtFUXVQZDtFUnpQVTtJQUNJO0lBQ0E7RVEyUGQ7RVI3UFU7SUFDSTtJQUNBO0VRK1BkO0VSalFVO0lBQ0k7SUFDQTtFUW1RZDtFUnJRVTtJQUNJO0lBQ0E7RVF1UWQ7RVJ6UVU7SUFDSTtJQUNBO0VRMlFkO0VSN1FVO0lBQ0k7SUFDQTtFUStRZDtFUmpSVTtJQUNJO0lBQ0E7RVFtUmQ7RVI5UUU7SUFDSTtFUWdSTjtBQUNGO0FSM1FRO0VBREo7SUFFUTtFUThRVjtBQUNGOztBUG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FNNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1QjcxRWdCO0U0QjgxRWhCLGNMbjVFUztFS281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFsaUhJO0VBQ0k7RUFDQTtBQWlOUixDOzs7O0E1QnRZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QVc4Tko7O0FYM05BO0VBQ0k7QVc4Tko7O0FUcE9JO0VBREo7SUFFUTtFU3dPTjtBQUNGOztBVHJPQTtFQUNJO0VBQ0E7RUFDQTtBU3dPSjtBVHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VTeU9OO0FBQ0Y7O0FUdE9BO0VBR1k7SUFDSTtJQUNBO0VTdU9kO0VUek9VO0lBQ0k7SUFDQTtFUzJPZDtFVDdPVTtJQUNJO0lBQ0E7RVMrT2Q7RVRqUFU7SUFDSTtJQUNBO0VTbVBkO0VUclBVO0lBQ0k7SUFDQTtFU3VQZDtFVHpQVTtJQUNJO0lBQ0E7RVMyUGQ7RVQ3UFU7SUFDSTtJQUNBO0VTK1BkO0VUalFVO0lBQ0k7SUFDQTtFU21RZDtFVHJRVTtJQUNJO0lBQ0E7RVN1UWQ7RVR6UVU7SUFDSTtJQUNBO0VTMlFkO0VUN1FVO0lBQ0k7SUFDQTtFUytRZDtFVGpSVTtJQUNJO0lBQ0E7RVNtUmQ7RVQ5UUU7SUFDSTtFU2dSTjtBQUNGO0FUM1FRO0VBREo7SUFFUTtFUzhRVjtBQUNGOztBUm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FPNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3QjcxRWdCO0U2QjgxRWhCLGNObjVFUztFTW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUF4aEhRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0FBdU1aLEM7Ozs7QTdCdFlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBWThOSjs7QVozTkE7RUFDSTtBWThOSjs7QVZwT0k7RUFESjtJQUVRO0VVd09OO0FBQ0Y7O0FWck9BO0VBQ0k7RUFDQTtFQUNBO0FVd09KO0FWdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RVV5T047QUFDRjs7QVZ0T0E7RUFHWTtJQUNJO0lBQ0E7RVV1T2Q7RVZ6T1U7SUFDSTtJQUNBO0VVMk9kO0VWN09VO0lBQ0k7SUFDQTtFVStPZDtFVmpQVTtJQUNJO0lBQ0E7RVVtUGQ7RVZyUFU7SUFDSTtJQUNBO0VVdVBkO0VWelBVO0lBQ0k7SUFDQTtFVTJQZDtFVjdQVTtJQUNJO0lBQ0E7RVUrUGQ7RVZqUVU7SUFDSTtJQUNBO0VVbVFkO0VWclFVO0lBQ0k7SUFDQTtFVXVRZDtFVnpRVTtJQUNJO0lBQ0E7RVUyUWQ7RVY3UVU7SUFDSTtJQUNBO0VVK1FkO0VWalJVO0lBQ0k7SUFDQTtFVW1SZDtFVjlRRTtJQUNJO0VVZ1JOO0FBQ0Y7QVYzUVE7RUFESjtJQUVRO0VVOFFWO0FBQ0Y7O0FUblRBOztFQUFBO0FDQUE7O0VBQUE7QVE2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzlCNzFFZ0I7RThCODFFaEIsY1BuNUVTO0VPbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTlnSEk7RUFDSTtFQUNBO0FBNkxSLEM7Ozs7QTlCdFlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBYThOSjs7QWIzTkE7RUFDSTtBYThOSjs7QVhwT0k7RUFESjtJQUVRO0VXd09OO0FBQ0Y7O0FYck9BO0VBQ0k7RUFDQTtFQUNBO0FXd09KO0FYdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RVd5T047QUFDRjs7QVh0T0E7RUFHWTtJQUNJO0lBQ0E7RVd1T2Q7RVh6T1U7SUFDSTtJQUNBO0VXMk9kO0VYN09VO0lBQ0k7SUFDQTtFVytPZDtFWGpQVTtJQUNJO0lBQ0E7RVdtUGQ7RVhyUFU7SUFDSTtJQUNBO0VXdVBkO0VYelBVO0lBQ0k7SUFDQTtFVzJQZDtFWDdQVTtJQUNJO0lBQ0E7RVcrUGQ7RVhqUVU7SUFDSTtJQUNBO0VXbVFkO0VYclFVO0lBQ0k7SUFDQTtFV3VRZDtFWHpRVTtJQUNJO0lBQ0E7RVcyUWQ7RVg3UVU7SUFDSTtJQUNBO0VXK1FkO0VYalJVO0lBQ0k7SUFDQTtFV21SZDtFWDlRRTtJQUNJO0VXZ1JOO0FBQ0Y7QVgzUVE7RUFESjtJQUVRO0VXOFFWO0FBQ0Y7O0FWblRBOztFQUFBO0FDQUE7O0VBQUE7QVM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9CNzFFZ0I7RStCODFFaEIsY1JuNUVTO0VRbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXBnSFE7RUFDSTtFQUNBO0FBbUxaO0FBaExRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBa0xaO0FBaExZO0VBQ0k7QUFrTGhCO0FBL0tZO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0FBZ0xoQjtBQTdLWTtFQUNJO1VBQUE7QUErS2hCO0FBNUtZO0VBQ0kseUJSek9PO0VRME9QLGMvQnpNTztFK0IwTVA7RUFDQTtFQUNBO0tBQUE7TUFBQTtVQUFBO0VBQ0E7QUE4S2hCO0FBNUtnQjtFQUVJLHlCL0JqTkc7QStCOFh2QixDOzs7O0EvQnphQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWM4Tko7O0FkM05BO0VBQ0k7QWM4Tko7O0FacE9JO0VBREo7SUFFUTtFWXdPTjtBQUNGOztBWnJPQTtFQUNJO0VBQ0E7RUFDQTtBWXdPSjtBWnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VZeU9OO0FBQ0Y7O0FadE9BO0VBR1k7SUFDSTtJQUNBO0VZdU9kO0Vaek9VO0lBQ0k7SUFDQTtFWTJPZDtFWjdPVTtJQUNJO0lBQ0E7RVkrT2Q7RVpqUFU7SUFDSTtJQUNBO0VZbVBkO0VaclBVO0lBQ0k7SUFDQTtFWXVQZDtFWnpQVTtJQUNJO0lBQ0E7RVkyUGQ7RVo3UFU7SUFDSTtJQUNBO0VZK1BkO0VaalFVO0lBQ0k7SUFDQTtFWW1RZDtFWnJRVTtJQUNJO0lBQ0E7RVl1UWQ7RVp6UVU7SUFDSTtJQUNBO0VZMlFkO0VaN1FVO0lBQ0k7SUFDQTtFWStRZDtFWmpSVTtJQUNJO0lBQ0E7RVltUmQ7RVo5UUU7SUFDSTtFWWdSTjtBQUNGO0FaM1FRO0VBREo7SUFFUTtFWThRVjtBQUNGOztBWG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FVNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoQzcxRWdCO0VnQzgxRWhCLGNUbjVFUztFU281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUE5OEdRO0VBQ0k7QUE2SFo7QUExSFE7RXRCNVBKO0FzQnlYSjtBQXpIUTtFQUNJLGNUaFJTO0FTMllyQjtBQXhIUTtFQUNJO0FBMEhaLEM7Ozs7QWhDOVlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBZThOSjs7QWYzTkE7RUFDSTtBZThOSjs7QWJwT0k7RUFESjtJQUVRO0Vhd09OO0FBQ0Y7O0Fick9BO0VBQ0k7RUFDQTtFQUNBO0Fhd09KO0FidE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWF5T047QUFDRjs7QWJ0T0E7RUFHWTtJQUNJO0lBQ0E7RWF1T2Q7RWJ6T1U7SUFDSTtJQUNBO0VhMk9kO0ViN09VO0lBQ0k7SUFDQTtFYStPZDtFYmpQVTtJQUNJO0lBQ0E7RWFtUGQ7RWJyUFU7SUFDSTtJQUNBO0VhdVBkO0VielBVO0lBQ0k7SUFDQTtFYTJQZDtFYjdQVTtJQUNJO0lBQ0E7RWErUGQ7RWJqUVU7SUFDSTtJQUNBO0VhbVFkO0ViclFVO0lBQ0k7SUFDQTtFYXVRZDtFYnpRVTtJQUNJO0lBQ0E7RWEyUWQ7RWI3UVU7SUFDSTtJQUNBO0VhK1FkO0VialJVO0lBQ0k7SUFDQTtFYW1SZDtFYjlRRTtJQUNJO0VhZ1JOO0FBQ0Y7QWIzUVE7RUFESjtJQUVRO0VhOFFWO0FBQ0Y7O0FablRBOztFQUFBO0FDQUE7O0VBQUE7QVc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pDNzFFZ0I7RWlDODFFaEIsY1ZuNUVTO0VVbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBbkJyckhJO0VtQjZQSTtJQUVRO0VBdUdkO0FBQ0YsQzs7OztBakN2WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnQjhOSjs7QWhCM05BO0VBQ0k7QWdCOE5KOztBZHBPSTtFQURKO0lBRVE7RWN3T047QUFDRjs7QWRyT0E7RUFDSTtFQUNBO0VBQ0E7QWN3T0o7QWR0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFY3lPTjtBQUNGOztBZHRPQTtFQUdZO0lBQ0k7SUFDQTtFY3VPZDtFZHpPVTtJQUNJO0lBQ0E7RWMyT2Q7RWQ3T1U7SUFDSTtJQUNBO0VjK09kO0VkalBVO0lBQ0k7SUFDQTtFY21QZDtFZHJQVTtJQUNJO0lBQ0E7RWN1UGQ7RWR6UFU7SUFDSTtJQUNBO0VjMlBkO0VkN1BVO0lBQ0k7SUFDQTtFYytQZDtFZGpRVTtJQUNJO0lBQ0E7RWNtUWQ7RWRyUVU7SUFDSTtJQUNBO0VjdVFkO0VkelFVO0lBQ0k7SUFDQTtFYzJRZDtFZDdRVTtJQUNJO0lBQ0E7RWMrUWQ7RWRqUlU7SUFDSTtJQUNBO0VjbVJkO0VkOVFFO0lBQ0k7RWNnUk47QUFDRjtBZDNRUTtFQURKO0lBRVE7RWM4UVY7QUFDRjs7QWJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBWTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEM3MUVnQjtFa0M4MUVoQixjWG41RVM7RVdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBNTZHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBMkZaO0FBdkZZO0VBQ0kseUJsQzNSUTtBa0NvWHhCLEM7Ozs7QWxDM1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBaUI4Tko7O0FqQjNOQTtFQUNJO0FpQjhOSjs7QWZwT0k7RUFESjtJQUVRO0Vld09OO0FBQ0Y7O0Fmck9BO0VBQ0k7RUFDQTtFQUNBO0Fld09KO0FmdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWV5T047QUFDRjs7QWZ0T0E7RUFHWTtJQUNJO0lBQ0E7RWV1T2Q7RWZ6T1U7SUFDSTtJQUNBO0VlMk9kO0VmN09VO0lBQ0k7SUFDQTtFZStPZDtFZmpQVTtJQUNJO0lBQ0E7RWVtUGQ7RWZyUFU7SUFDSTtJQUNBO0VldVBkO0VmelBVO0lBQ0k7SUFDQTtFZTJQZDtFZjdQVTtJQUNJO0lBQ0E7RWUrUGQ7RWZqUVU7SUFDSTtJQUNBO0VlbVFkO0VmclFVO0lBQ0k7SUFDQTtFZXVRZDtFZnpRVTtJQUNJO0lBQ0E7RWUyUWQ7RWY3UVU7SUFDSTtJQUNBO0VlK1FkO0VmalJVO0lBQ0k7SUFDQTtFZW1SZDtFZjlRRTtJQUNJO0VlZ1JOO0FBQ0Y7QWYzUVE7RUFESjtJQUVRO0VlOFFWO0FBQ0Y7O0FkblRBOztFQUFBO0FDQUE7O0VBQUE7QWE2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q25DNzFFZ0I7RW1DODFFaEIsY1puNUVTO0VZbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXo1R1E7RUFDSTtBQXdFWjtBQXJFUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLG1CbkN4U2E7RW1DeVNiLGNuQ3JSWTtFbUNzUlo7QUF1RVosQzs7OztBbkM3WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrQjhOSjs7QWxCM05BO0VBQ0k7QWtCOE5KOztBaEJwT0k7RUFESjtJQUVRO0VnQndPTjtBQUNGOztBaEJyT0E7RUFDSTtFQUNBO0VBQ0E7QWdCd09KO0FoQnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnQnlPTjtBQUNGOztBaEJ0T0E7RUFHWTtJQUNJO0lBQ0E7RWdCdU9kO0VoQnpPVTtJQUNJO0lBQ0E7RWdCMk9kO0VoQjdPVTtJQUNJO0lBQ0E7RWdCK09kO0VoQmpQVTtJQUNJO0lBQ0E7RWdCbVBkO0VoQnJQVTtJQUNJO0lBQ0E7RWdCdVBkO0VoQnpQVTtJQUNJO0lBQ0E7RWdCMlBkO0VoQjdQVTtJQUNJO0lBQ0E7RWdCK1BkO0VoQmpRVTtJQUNJO0lBQ0E7RWdCbVFkO0VoQnJRVTtJQUNJO0lBQ0E7RWdCdVFkO0VoQnpRVTtJQUNJO0lBQ0E7RWdCMlFkO0VoQjdRVTtJQUNJO0lBQ0E7RWdCK1FkO0VoQmpSVTtJQUNJO0lBQ0E7RWdCbVJkO0VoQjlRRTtJQUNJO0VnQmdSTjtBQUNGO0FoQjNRUTtFQURKO0lBRVE7RWdCOFFWO0FBQ0Y7O0FmblRBOztFQUFBO0FDQUE7O0VBQUE7QWM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BDNzFFZ0I7RW9DODFFaEIsY2JuNUVTO0VhbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTMzR1E7RUFDSTtBQTBDWjtBQXZDUTtFQUNJLGNiL1ZTO0Fhd1lyQjtBQXRDUTtFQUNJO0FBd0NaLEM7Ozs7QXBDM1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBbUI4Tko7O0FuQjNOQTtFQUNJO0FtQjhOSjs7QWpCcE9JO0VBREo7SUFFUTtFaUJ3T047QUFDRjs7QWpCck9BO0VBQ0k7RUFDQTtFQUNBO0FpQndPSjtBakJ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFaUJ5T047QUFDRjs7QWpCdE9BO0VBR1k7SUFDSTtJQUNBO0VpQnVPZDtFakJ6T1U7SUFDSTtJQUNBO0VpQjJPZDtFakI3T1U7SUFDSTtJQUNBO0VpQitPZDtFakJqUFU7SUFDSTtJQUNBO0VpQm1QZDtFakJyUFU7SUFDSTtJQUNBO0VpQnVQZDtFakJ6UFU7SUFDSTtJQUNBO0VpQjJQZDtFakI3UFU7SUFDSTtJQUNBO0VpQitQZDtFakJqUVU7SUFDSTtJQUNBO0VpQm1RZDtFakJyUVU7SUFDSTtJQUNBO0VpQnVRZDtFakJ6UVU7SUFDSTtJQUNBO0VpQjJRZDtFakI3UVU7SUFDSTtJQUNBO0VpQitRZDtFakJqUlU7SUFDSTtJQUNBO0VpQm1SZDtFakI5UUU7SUFDSTtFaUJnUk47QUFDRjtBakIzUVE7RUFESjtJQUVRO0VpQjhRVjtBQUNGOztBaEJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBZTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDckM3MUVnQjtFcUM4MUVoQixjZG41RVM7RWNvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBejJHUTtFQUNJO0VBQ0E7QUF3Qlo7QUF0Qlk7RUFDSSx5QnJDclZTO0FxQzZXekIsQzs7OztBckN6WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FvQjhOSjs7QXBCM05BO0VBQ0k7QW9COE5KOztBbEJwT0k7RUFESjtJQUVRO0VrQndPTjtBQUNGOztBbEJyT0E7RUFDSTtFQUNBO0VBQ0E7QWtCd09KO0FsQnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VrQnlPTjtBQUNGOztBbEJ0T0E7RUFHWTtJQUNJO0lBQ0E7RWtCdU9kO0VsQnpPVTtJQUNJO0lBQ0E7RWtCMk9kO0VsQjdPVTtJQUNJO0lBQ0E7RWtCK09kO0VsQmpQVTtJQUNJO0lBQ0E7RWtCbVBkO0VsQnJQVTtJQUNJO0lBQ0E7RWtCdVBkO0VsQnpQVTtJQUNJO0lBQ0E7RWtCMlBkO0VsQjdQVTtJQUNJO0lBQ0E7RWtCK1BkO0VsQmpRVTtJQUNJO0lBQ0E7RWtCbVFkO0VsQnJRVTtJQUNJO0lBQ0E7RWtCdVFkO0VsQnpRVTtJQUNJO0lBQ0E7RWtCMlFkO0VsQjdRVTtJQUNJO0lBQ0E7RWtCK1FkO0VsQmpSVTtJQUNJO0lBQ0E7RWtCbVJkO0VsQjlRRTtJQUNJO0VrQmdSTjtBQUNGO0FsQjNRUTtFQURKO0lBRVE7RWtCOFFWO0FBQ0Y7O0FqQm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FnQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdEM3MUVnQjtFc0M4MUVoQixjZm41RVM7RWVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBLzBHUTtFQUNJO0FBRlosQzs7OztBdENyWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FxQjhOSjs7QXJCM05BO0VBQ0k7QXFCOE5KOztBbkJwT0k7RUFESjtJQUVRO0VtQndPTjtBQUNGOztBbkJyT0E7RUFDSTtFQUNBO0VBQ0E7QW1Cd09KO0FuQnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VtQnlPTjtBQUNGOztBbkJ0T0E7RUFHWTtJQUNJO0lBQ0E7RW1CdU9kO0VuQnpPVTtJQUNJO0lBQ0E7RW1CMk9kO0VuQjdPVTtJQUNJO0lBQ0E7RW1CK09kO0VuQmpQVTtJQUNJO0lBQ0E7RW1CbVBkO0VuQnJQVTtJQUNJO0lBQ0E7RW1CdVBkO0VuQnpQVTtJQUNJO0lBQ0E7RW1CMlBkO0VuQjdQVTtJQUNJO0lBQ0E7RW1CK1BkO0VuQmpRVTtJQUNJO0lBQ0E7RW1CbVFkO0VuQnJRVTtJQUNJO0lBQ0E7RW1CdVFkO0VuQnpRVTtJQUNJO0lBQ0E7RW1CMlFkO0VuQjdRVTtJQUNJO0lBQ0E7RW1CK1FkO0VuQmpSVTtJQUNJO0lBQ0E7RW1CbVJkO0VuQjlRRTtJQUNJO0VtQmdSTjtBQUNGO0FuQjNRUTtFQURKO0lBRVE7RW1COFFWO0FBQ0Y7O0FsQm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FpQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdkM3MUVnQjtFdUM4MUVoQixjaEJuNUVTO0VnQm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUEzeUVJO0U1QjE1Q0EsNEZBRmlCO0VBRWpCLG9GQUZpQjtFQUVqQiw0RUFGaUI7RUFFakIsa0hBRmlCO0U0Qjg1Q2I7RUFDQTtFQUNBLHlCaEI5NkNhO0VnQis2Q2I7RUFDQTtFQUNBLFdoQjU2Q2M7RWdCNjZDZDtFQUNBO0FBdGlDUjtBQXdpQ1E7RUFFSTtFQUNBO0FBdmlDWjtBQTBpQ1E7RUFDSSx5QmhCNTdDUztFZ0I2N0NUO0VBQ0E7VUFBQTtBQXhpQ1o7QUEyaUNRO0VBQ0k7RUFDQSxzQmhCOTdDVTtFZ0IrN0NWO0VBQ0EsY2hCcjhDUztBZ0I0WnJCO0FBMmlDWTtFQUVJO0FBMWlDaEI7QUE2aUNZO0VBQ0k7RUFDQTtVQUFBO0FBM2lDaEI7QUEraUNRO0VBQ0k7QUE3aUNaO0FBc2tDSTtFQUNJLHlCaEIvNkNnQjtBZ0IyV3hCO0FBc2tDUTtFQUVJO0FBcmtDWjtBQXdrQ1E7RUFDSSx5QmhCdjdDWTtFZ0J3N0NaO1VBQUE7QUF0a0NaO0FBMGtDSTtFQUNJLHNCaEJ0L0NjO0VnQnUvQ2QscUJoQjk3Q2dCO0VnQis3Q2hCLGNoQi83Q2dCO0FnQnVYeEI7QUEwa0NRO0VBRUk7QUF6a0NaO0FBNGtDUTtFQUNJO0VBQ0E7VUFBQTtBQTFrQ1o7QUFnakNJO0VBQ0kseUJoQi82Q2dCO0FnQmlZeEI7QUFnakNRO0VBRUk7QUEvaUNaO0FBa2pDUTtFQUNJLHlCaEJ2N0NZO0VnQnc3Q1o7VUFBQTtBQWhqQ1o7QUFvakNJO0VBQ0ksc0JoQnQvQ2M7RWdCdS9DZCxxQmhCOTdDZ0I7RWdCKzdDaEIsY2hCLzdDZ0I7QWdCNll4QjtBQW9qQ1E7RUFFSTtBQW5qQ1o7QUFzakNRO0VBQ0k7RUFDQTtVQUFBO0FBcGpDWjtBQTBoQ0k7RUFDSSx5QmhCLzZDZ0I7QWdCdVp4QjtBQTBoQ1E7RUFFSTtBQXpoQ1o7QUE0aENRO0VBQ0kseUJoQnY3Q1k7RWdCdzdDWjtVQUFBO0FBMWhDWjtBQThoQ0k7RUFDSSxzQmhCdC9DYztFZ0J1L0NkLHFCaEI5N0NnQjtFZ0IrN0NoQixjaEIvN0NnQjtBZ0JtYXhCO0FBOGhDUTtFQUVJO0FBN2hDWjtBQWdpQ1E7RUFDSTtFQUNBO1VBQUE7QUE5aENaO0FBay9CUTtFQUdJLHlCdkMzOENVO0V1QzQ4Q1YscUJ2QzU4Q1U7RXVDNjhDVjtBQWwvQlo7QUFvL0JZO0VBRUkseUJ2Q2o5Q007QXVDOGR0QjtBQWhHUTtFQUNJO0VBQ0E7RUFFQTtFQTJDUixnQmhCMWJrQjtFZ0IyYmxCLGNoQnRibUI7RWdCdWJuQixxQnZDMWFvQjtBdUNpZXhCO0FBNUZZO0VBbUNSLG1CQUphO0VBS2IsY3ZDclptQjtFdUNzWm5CLHFCaEJqY2lCO0FnQjZmckI7QUE1RlE7RUE4QkosbUJBNUJZO0VBNkJaLGNBNUJZO0VBNkJaLHFCQTVCWTtBQTZGaEI7QUExRlk7RUF1QlIsbUJBSmE7RUFLYixjdkNyWm1CO0V1Q3NabkIscUJoQmpjaUI7QWdCdWdCckI7QUExRlE7RUFrQkosbUJBSmE7RUFLYixjdkNyWm1CO0V1Q3NabkIscUJoQmpjaUI7QWdCNGdCckI7QUExRlE7RUFDSSxXaEI5YVU7QWdCMGdCdEIsQzs7OztBdkMvZ0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0I4Tko7O0F0QjNOQTtFQUNJO0FzQjhOSjs7QXBCcE9JO0VBREo7SUFFUTtFb0J3T047QUFDRjs7QXBCck9BO0VBQ0k7RUFDQTtFQUNBO0FvQndPSjtBcEJ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0J5T047QUFDRjs7QXBCdE9BO0VBR1k7SUFDSTtJQUNBO0VvQnVPZDtFcEJ6T1U7SUFDSTtJQUNBO0VvQjJPZDtFcEI3T1U7SUFDSTtJQUNBO0VvQitPZDtFcEJqUFU7SUFDSTtJQUNBO0VvQm1QZDtFcEJyUFU7SUFDSTtJQUNBO0VvQnVQZDtFcEJ6UFU7SUFDSTtJQUNBO0VvQjJQZDtFcEI3UFU7SUFDSTtJQUNBO0VvQitQZDtFcEJqUVU7SUFDSTtJQUNBO0VvQm1RZDtFcEJyUVU7SUFDSTtJQUNBO0VvQnVRZDtFcEJ6UVU7SUFDSTtJQUNBO0VvQjJRZDtFcEI3UVU7SUFDSTtJQUNBO0VvQitRZDtFcEJqUlU7SUFDSTtJQUNBO0VvQm1SZDtFcEI5UUU7SUFDSTtFb0JnUk47QUFDRjtBcEIzUVE7RUFESjtJQUVRO0VvQjhRVjtBQUNGOztBbkJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0I2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hDNzFFZ0I7RXdDODFFaEIsY2pCbjVFUztFaUJvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBOXdHSTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBRUE7QUFwRVIsQzs7OztBeEMxWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1QjhOSjs7QXZCM05BO0VBQ0k7QXVCOE5KOztBckJwT0k7RUFESjtJQUVRO0VxQndPTjtBQUNGOztBckJyT0E7RUFDSTtFQUNBO0VBQ0E7QXFCd09KO0FyQnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxQnlPTjtBQUNGOztBckJ0T0E7RUFHWTtJQUNJO0lBQ0E7RXFCdU9kO0VyQnpPVTtJQUNJO0lBQ0E7RXFCMk9kO0VyQjdPVTtJQUNJO0lBQ0E7RXFCK09kO0VyQmpQVTtJQUNJO0lBQ0E7RXFCbVBkO0VyQnJQVTtJQUNJO0lBQ0E7RXFCdVBkO0VyQnpQVTtJQUNJO0lBQ0E7RXFCMlBkO0VyQjdQVTtJQUNJO0lBQ0E7RXFCK1BkO0VyQmpRVTtJQUNJO0lBQ0E7RXFCbVFkO0VyQnJRVTtJQUNJO0lBQ0E7RXFCdVFkO0VyQnpRVTtJQUNJO0lBQ0E7RXFCMlFkO0VyQjdRVTtJQUNJO0lBQ0E7RXFCK1FkO0VyQmpSVTtJQUNJO0lBQ0E7RXFCbVJkO0VyQjlRRTtJQUNJO0VxQmdSTjtBQUNGO0FyQjNRUTtFQURKO0lBRVE7RXFCOFFWO0FBQ0Y7O0FwQm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FtQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekM3MUVnQjtFeUM4MUVoQixjbEJuNUVTO0VrQm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFsbkJJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQThCQTtBQTV2RlI7QUFndUZRO0UvQnpsR0o7RStCMmxHUSxjbEIvbEdXO0FrQmlZdkI7QUFpdUZRO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQS90Rlo7QUFpdUZZO0VBQ0k7QUEvdEZoQjtBQW11RlE7RUFDSTtFQUFBO0VBQUE7RUFDQTtBQWp1Rlo7QUE0dUZRO0VBQ0k7TUFBQTtVQUFBO0FBMXVGWixDOzs7O0F6QzdaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdCOE5KOztBeEIzTkE7RUFDSTtBd0I4Tko7O0F0QnBPSTtFQURKO0lBRVE7RXNCd09OO0FBQ0Y7O0F0QnJPQTtFQUNJO0VBQ0E7RUFDQTtBc0J3T0o7QXRCdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNCeU9OO0FBQ0Y7O0F0QnRPQTtFQUdZO0lBQ0k7SUFDQTtFc0J1T2Q7RXRCek9VO0lBQ0k7SUFDQTtFc0IyT2Q7RXRCN09VO0lBQ0k7SUFDQTtFc0IrT2Q7RXRCalBVO0lBQ0k7SUFDQTtFc0JtUGQ7RXRCclBVO0lBQ0k7SUFDQTtFc0J1UGQ7RXRCelBVO0lBQ0k7SUFDQTtFc0IyUGQ7RXRCN1BVO0lBQ0k7SUFDQTtFc0IrUGQ7RXRCalFVO0lBQ0k7SUFDQTtFc0JtUWQ7RXRCclFVO0lBQ0k7SUFDQTtFc0J1UWQ7RXRCelFVO0lBQ0k7SUFDQTtFc0IyUWQ7RXRCN1FVO0lBQ0k7SUFDQTtFc0IrUWQ7RXRCalJVO0lBQ0k7SUFDQTtFc0JtUmQ7RXRCOVFFO0lBQ0k7RXNCZ1JOO0FBQ0Y7QXRCM1FRO0VBREo7SUFFUTtFc0I4UVY7QUFDRjs7QXJCblRBOztFQUFBO0FDQUE7O0VBQUE7QW9CNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxQzcxRWdCO0UwQzgxRWhCLGNuQm41RVM7RW1CbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTF2R0k7RUFDSTtFQUNBO0VBQ0EsbUIxQ3ZjZ0I7QTBDZ1h4QixDOzs7O0ExQ3ZZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXlCOE5KOztBekIzTkE7RUFDSTtBeUI4Tko7O0F2QnBPSTtFQURKO0lBRVE7RXVCd09OO0FBQ0Y7O0F2QnJPQTtFQUNJO0VBQ0E7RUFDQTtBdUJ3T0o7QXZCdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXVCeU9OO0FBQ0Y7O0F2QnRPQTtFQUdZO0lBQ0k7SUFDQTtFdUJ1T2Q7RXZCek9VO0lBQ0k7SUFDQTtFdUIyT2Q7RXZCN09VO0lBQ0k7SUFDQTtFdUIrT2Q7RXZCalBVO0lBQ0k7SUFDQTtFdUJtUGQ7RXZCclBVO0lBQ0k7SUFDQTtFdUJ1UGQ7RXZCelBVO0lBQ0k7SUFDQTtFdUIyUGQ7RXZCN1BVO0lBQ0k7SUFDQTtFdUIrUGQ7RXZCalFVO0lBQ0k7SUFDQTtFdUJtUWQ7RXZCclFVO0lBQ0k7SUFDQTtFdUJ1UWQ7RXZCelFVO0lBQ0k7SUFDQTtFdUIyUWQ7RXZCN1FVO0lBQ0k7SUFDQTtFdUIrUWQ7RXZCalJVO0lBQ0k7SUFDQTtFdUJtUmQ7RXZCOVFFO0lBQ0k7RXVCZ1JOO0FBQ0Y7QXZCM1FRO0VBREo7SUFFUTtFdUI4UVY7QUFDRjs7QXRCblRBOztFQUFBO0FDQUE7O0VBQUE7QXFCNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MzQzcxRWdCO0UyQzgxRWhCLGNwQm41RVM7RW9CbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQS91R1E7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0FBbkdaLEM7Ozs7QTNDellBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMEI4Tko7O0ExQjNOQTtFQUNJO0EwQjhOSjs7QXhCcE9JO0VBREo7SUFFUTtFd0J3T047QUFDRjs7QXhCck9BO0VBQ0k7RUFDQTtFQUNBO0F3QndPSjtBeEJ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFd0J5T047QUFDRjs7QXhCdE9BO0VBR1k7SUFDSTtJQUNBO0V3QnVPZDtFeEJ6T1U7SUFDSTtJQUNBO0V3QjJPZDtFeEI3T1U7SUFDSTtJQUNBO0V3QitPZDtFeEJqUFU7SUFDSTtJQUNBO0V3Qm1QZDtFeEJyUFU7SUFDSTtJQUNBO0V3QnVQZDtFeEJ6UFU7SUFDSTtJQUNBO0V3QjJQZDtFeEI3UFU7SUFDSTtJQUNBO0V3QitQZDtFeEJqUVU7SUFDSTtJQUNBO0V3Qm1RZDtFeEJyUVU7SUFDSTtJQUNBO0V3QnVRZDtFeEJ6UVU7SUFDSTtJQUNBO0V3QjJRZDtFeEI3UVU7SUFDSTtJQUNBO0V3QitRZDtFeEJqUlU7SUFDSTtJQUNBO0V3Qm1SZDtFeEI5UUU7SUFDSTtFd0JnUk47QUFDRjtBeEIzUVE7RUFESjtJQUVRO0V3QjhRVjtBQUNGOztBdkJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBc0I2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzVDNzFFZ0I7RTRDODFFaEIsY3JCbjVFUztFcUJvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBanVHSTtFQUVJO0VBQ0E7RUFDQTtBQWpIUjtBNUJuWUk7RUFDSTtFQUNBO0VBQ0E7QTRCcVlSO0FBOEdRO0VBQ0k7QUE1R1o7QUErR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjNUNsZFk7QTRDcVd4QjtBQStHWTtFQUNJLG1CNUM5ZVE7QTRDaVl4QixDOzs7O0E1Q3haQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTJCOE5KOztBM0IzTkE7RUFDSTtBMkI4Tko7O0F6QnBPSTtFQURKO0lBRVE7RXlCd09OO0FBQ0Y7O0F6QnJPQTtFQUNJO0VBQ0E7RUFDQTtBeUJ3T0o7QXpCdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXlCeU9OO0FBQ0Y7O0F6QnRPQTtFQUdZO0lBQ0k7SUFDQTtFeUJ1T2Q7RXpCek9VO0lBQ0k7SUFDQTtFeUIyT2Q7RXpCN09VO0lBQ0k7SUFDQTtFeUIrT2Q7RXpCalBVO0lBQ0k7SUFDQTtFeUJtUGQ7RXpCclBVO0lBQ0k7SUFDQTtFeUJ1UGQ7RXpCelBVO0lBQ0k7SUFDQTtFeUIyUGQ7RXpCN1BVO0lBQ0k7SUFDQTtFeUIrUGQ7RXpCalFVO0lBQ0k7SUFDQTtFeUJtUWQ7RXpCclFVO0lBQ0k7SUFDQTtFeUJ1UWQ7RXpCelFVO0lBQ0k7SUFDQTtFeUIyUWQ7RXpCN1FVO0lBQ0k7SUFDQTtFeUIrUWQ7RXpCalJVO0lBQ0k7SUFDQTtFeUJtUmQ7RXpCOVFFO0lBQ0k7RXlCZ1JOO0FBQ0Y7QXpCM1FRO0VBREo7SUFFUTtFeUI4UVY7QUFDRjs7QXhCblRBOztFQUFBO0FDQUE7O0VBQUE7QXVCNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3QzcxRWdCO0U2QzgxRWhCLGN0Qm41RVM7RXNCbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXRzR1E7RUFDSTtFQUNBO0VBQ0Esc0J0QjdnQlU7RXNCOGdCVjtBQTNJWjtBQThJUTtFQUNJO0VBQ0E7RUFDQTtBQTVJWjtBQStJUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBN0laO0FBZ0pRO0VBQ0k7QUE5SVo7QUFpSlE7RUFDSTtFQUNBO0FBL0laLEM7Ozs7QTdDMVpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNEI4Tko7O0E1QjNOQTtFQUNJO0E0QjhOSjs7QTFCcE9JO0VBREo7SUFFUTtFMEJ3T047QUFDRjs7QTFCck9BO0VBQ0k7RUFDQTtFQUNBO0EwQndPSjtBMUJ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMEJ5T047QUFDRjs7QTFCdE9BO0VBR1k7SUFDSTtJQUNBO0UwQnVPZDtFMUJ6T1U7SUFDSTtJQUNBO0UwQjJPZDtFMUI3T1U7SUFDSTtJQUNBO0UwQitPZDtFMUJqUFU7SUFDSTtJQUNBO0UwQm1QZDtFMUJyUFU7SUFDSTtJQUNBO0UwQnVQZDtFMUJ6UFU7SUFDSTtJQUNBO0UwQjJQZDtFMUI3UFU7SUFDSTtJQUNBO0UwQitQZDtFMUJqUVU7SUFDSTtJQUNBO0UwQm1RZDtFMUJyUVU7SUFDSTtJQUNBO0UwQnVRZDtFMUJ6UVU7SUFDSTtJQUNBO0UwQjJRZDtFMUI3UVU7SUFDSTtJQUNBO0UwQitRZDtFMUJqUlU7SUFDSTtJQUNBO0UwQm1SZDtFMUI5UUU7SUFDSTtFMEJnUk47QUFDRjtBMUIzUVE7RUFESjtJQUVRO0UwQjhRVjtBQUNGOztBekJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBd0I2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzlDNzFFZ0I7RThDODFFaEIsY3ZCbjVFUztFdUJvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBbG5CSTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7QUEvdEZSO0FBaXVGUTtFcEN6bEdKO0VvQzJsR1EsY3ZCL2xHVztBdUJnWXZCO0FBa3VGUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QUFodUZaO0FBa3VGWTtFQUNJO0FBaHVGaEI7QUFvdUZRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7QUFsdUZaO0FoQ3pYSTtFZ0Nta0dBO0lBaGpGUTtJQUFBO1FBQUE7WUFBQTtJQUNBO1FBQUE7WUFBQTtFQXRKVjtBQUNGO0FBd0pRO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtBQXRKWjtBQXlKUTtFQUNJO0VBQ0E7QUF2Slo7QUF5Slk7RUFDSTtBQXZKaEI7QUEwSlk7RUFDSTtBQXhKaEI7QUE0SlE7RUFDSTtFQUNBO0FBMUpaLEM7Ozs7QTlDbmJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkI4Tko7O0E3QjNOQTtFQUNJO0E2QjhOSjs7QTNCcE9JO0VBREo7SUFFUTtFMkJ3T047QUFDRjs7QTNCck9BO0VBQ0k7RUFDQTtFQUNBO0EyQndPSjtBM0J0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkJ5T047QUFDRjs7QTNCdE9BO0VBR1k7SUFDSTtJQUNBO0UyQnVPZDtFM0J6T1U7SUFDSTtJQUNBO0UyQjJPZDtFM0I3T1U7SUFDSTtJQUNBO0UyQitPZDtFM0JqUFU7SUFDSTtJQUNBO0UyQm1QZDtFM0JyUFU7SUFDSTtJQUNBO0UyQnVQZDtFM0J6UFU7SUFDSTtJQUNBO0UyQjJQZDtFM0I3UFU7SUFDSTtJQUNBO0UyQitQZDtFM0JqUVU7SUFDSTtJQUNBO0UyQm1RZDtFM0JyUVU7SUFDSTtJQUNBO0UyQnVRZDtFM0J6UVU7SUFDSTtJQUNBO0UyQjJRZDtFM0I3UVU7SUFDSTtJQUNBO0UyQitRZDtFM0JqUlU7SUFDSTtJQUNBO0UyQm1SZDtFM0I5UUU7SUFDSTtFMkJnUk47QUFDRjtBM0IzUVE7RUFESjtJQUVRO0UyQjhRVjtBQUNGOztBMUJuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUI2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9DNzFFZ0I7RStDODFFaEIsY3hCbjVFUztFd0JvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7QUE3MUdaO0FBaTJHWTtFQURKO0lBRVE7SUFDQTtFQTkxR2Q7QUFDRjtBQWsyR1k7RUFDSTtFQUNBO0FBaDJHaEI7QUFrMkdnQjtFQUpKO0lBS1E7SUFDQTtFQS8xR2xCO0FBQ0Y7QUFtMkdRO0VBQ0k7QUFqMkdaO0FBbTJHWTtFQUNJLHlCeEIvdEhRO0F3QjhYeEI7QUFvMkdZO0VBQ0k7QUFsMkdoQjtBQXEyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBbjJHaEIsQzs7OztBL0MzYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E4QjhOSjs7QTlCM05BO0VBQ0k7QThCOE5KOztBNUJwT0k7RUFESjtJQUVRO0U0QndPTjtBQUNGOztBNUJyT0E7RUFDSTtFQUNBO0VBQ0E7QTRCd09KO0E1QnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U0QnlPTjtBQUNGOztBNUJ0T0E7RUFHWTtJQUNJO0lBQ0E7RTRCdU9kO0U1QnpPVTtJQUNJO0lBQ0E7RTRCMk9kO0U1QjdPVTtJQUNJO0lBQ0E7RTRCK09kO0U1QmpQVTtJQUNJO0lBQ0E7RTRCbVBkO0U1QnJQVTtJQUNJO0lBQ0E7RTRCdVBkO0U1QnpQVTtJQUNJO0lBQ0E7RTRCMlBkO0U1QjdQVTtJQUNJO0lBQ0E7RTRCK1BkO0U1QmpRVTtJQUNJO0lBQ0E7RTRCbVFkO0U1QnJRVTtJQUNJO0lBQ0E7RTRCdVFkO0U1QnpRVTtJQUNJO0lBQ0E7RTRCMlFkO0U1QjdRVTtJQUNJO0lBQ0E7RTRCK1FkO0U1QmpSVTtJQUNJO0lBQ0E7RTRCbVJkO0U1QjlRRTtJQUNJO0U0QmdSTjtBQUNGO0E1QjNRUTtFQURKO0lBRVE7RTRCOFFWO0FBQ0Y7O0EzQm5UQTs7RUFBQTtBQ0FBOztFQUFBO0EwQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDaEQ3MUVnQjtFZ0Q4MUVoQixjekJuNUVTO0V5Qm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUF6bUdRO0VBQ0k7QUF4T1o7QUE0T1k7RUFDSTtFQUNBO0VBQ0EsY2hEemtCTztBZ0QrVnZCO0FBNE9nQjtFQUNJO0FBMU9wQjtBQStPUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTdPWjtBQWdQUTtFQUNJO0VBQUE7RUFBQTtBQTlPWjtBQWlQUTtFQUNJO0VBQ0E7QUEvT1o7QUFpUFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQS9PaEI7QUFtUFE7RUFDSTtBQWpQWjtBQW9QUTtFQUNJO0VBQ0E7QUFsUFosQzs7OztBaER6YUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0ErQjhOSjs7QS9CM05BO0VBQ0k7QStCOE5KOztBN0JwT0k7RUFESjtJQUVRO0U2QndPTjtBQUNGOztBN0JyT0E7RUFDSTtFQUNBO0VBQ0E7QTZCd09KO0E3QnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U2QnlPTjtBQUNGOztBN0J0T0E7RUFHWTtJQUNJO0lBQ0E7RTZCdU9kO0U3QnpPVTtJQUNJO0lBQ0E7RTZCMk9kO0U3QjdPVTtJQUNJO0lBQ0E7RTZCK09kO0U3QmpQVTtJQUNJO0lBQ0E7RTZCbVBkO0U3QnJQVTtJQUNJO0lBQ0E7RTZCdVBkO0U3QnpQVTtJQUNJO0lBQ0E7RTZCMlBkO0U3QjdQVTtJQUNJO0lBQ0E7RTZCK1BkO0U3QmpRVTtJQUNJO0lBQ0E7RTZCbVFkO0U3QnJRVTtJQUNJO0lBQ0E7RTZCdVFkO0U3QnpRVTtJQUNJO0lBQ0E7RTZCMlFkO0U3QjdRVTtJQUNJO0lBQ0E7RTZCK1FkO0U3QmpSVTtJQUNJO0lBQ0E7RTZCbVJkO0U3QjlRRTtJQUNJO0U2QmdSTjtBQUNGO0E3QjNRUTtFQURKO0lBRVE7RTZCOFFWO0FBQ0Y7O0E1Qm5UQTs7RUFBQTtBQ0FBOztFQUFBO0EyQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDakQ3MUVnQjtFaUQ4MUVoQixjMUJuNUVTO0UwQm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0FBNTFHSixDOzs7O0FqRHJZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdDOE5KOztBaEMzTkE7RUFDSTtBZ0M4Tko7O0E5QnBPSTtFQURKO0lBRVE7RThCd09OO0FBQ0Y7O0E5QnJPQTtFQUNJO0VBQ0E7RUFDQTtBOEJ3T0o7QTlCdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThCeU9OO0FBQ0Y7O0E5QnRPQTtFQUdZO0lBQ0k7SUFDQTtFOEJ1T2Q7RTlCek9VO0lBQ0k7SUFDQTtFOEIyT2Q7RTlCN09VO0lBQ0k7SUFDQTtFOEIrT2Q7RTlCalBVO0lBQ0k7SUFDQTtFOEJtUGQ7RTlCclBVO0lBQ0k7SUFDQTtFOEJ1UGQ7RTlCelBVO0lBQ0k7SUFDQTtFOEIyUGQ7RTlCN1BVO0lBQ0k7SUFDQTtFOEIrUGQ7RTlCalFVO0lBQ0k7SUFDQTtFOEJtUWQ7RTlCclFVO0lBQ0k7SUFDQTtFOEJ1UWQ7RTlCelFVO0lBQ0k7SUFDQTtFOEIyUWQ7RTlCN1FVO0lBQ0k7SUFDQTtFOEIrUWQ7RTlCalJVO0lBQ0k7SUFDQTtFOEJtUmQ7RTlCOVFFO0lBQ0k7RThCZ1JOO0FBQ0Y7QTlCM1FRO0VBREo7SUFFUTtFOEI4UVY7QUFDRjs7QTdCblRBOztFQUFBO0FDQUE7O0VBQUE7QTRCNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsRDcxRWdCO0VrRDgxRWhCLGMzQm41RVM7RTJCbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXZpR0k7RUFDSTtBQTFTUixDOzs7O0FsRHJZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlDOE5KOztBakMzTkE7RUFDSTtBaUM4Tko7O0EvQnBPSTtFQURKO0lBRVE7RStCd09OO0FBQ0Y7O0EvQnJPQTtFQUNJO0VBQ0E7RUFDQTtBK0J3T0o7QS9CdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStCeU9OO0FBQ0Y7O0EvQnRPQTtFQUdZO0lBQ0k7SUFDQTtFK0J1T2Q7RS9Cek9VO0lBQ0k7SUFDQTtFK0IyT2Q7RS9CN09VO0lBQ0k7SUFDQTtFK0IrT2Q7RS9CalBVO0lBQ0k7SUFDQTtFK0JtUGQ7RS9CclBVO0lBQ0k7SUFDQTtFK0J1UGQ7RS9CelBVO0lBQ0k7SUFDQTtFK0IyUGQ7RS9CN1BVO0lBQ0k7SUFDQTtFK0IrUGQ7RS9CalFVO0lBQ0k7SUFDQTtFK0JtUWQ7RS9CclFVO0lBQ0k7SUFDQTtFK0J1UWQ7RS9CelFVO0lBQ0k7SUFDQTtFK0IyUWQ7RS9CN1FVO0lBQ0k7SUFDQTtFK0IrUWQ7RS9CalJVO0lBQ0k7SUFDQTtFK0JtUmQ7RS9COVFFO0lBQ0k7RStCZ1JOO0FBQ0Y7QS9CM1FRO0VBREo7SUFFUTtFK0I4UVY7QUFDRjs7QTlCblRBOztFQUFBO0FDQUE7O0VBQUE7QTZCNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuRDcxRWdCO0VtRDgxRWhCLGM1Qm41RVM7RTRCbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0V6QzV0SEE7QXlDZ1lKO0FBZzJHWTtFekNodUhSO0V5Q2t1SFk7RUFDQTtBQTkxR2hCO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFtMkdRO0VBQ0k7RUFDQSxjNUJqdkhRO0E0QmdacEI7QUFvMkdRO0VBQ0k7RUFDQTtVQUFBO0VBQ0E7VUFBQTtBQWwyR1o7QUFvMkdZO0VBQ0k7VUFBQTtBQWwyR2hCO0FBcTJHWTtFdkMvdUhSO0VBQ0E7RUFDQTtBdUM2WUo7O0FBMjJHQTtFQUNJO0lBQ0k7WUFBQTtFQXgyR047RUEyMkdFO0lBQ0k7WUFBQTtFQXoyR047RUE0MkdFO0lBQ0k7WUFBQTtFQTEyR047QUFDRjs7QUErMUdBO0VBQ0k7SUFDSTtZQUFBO0VBeDJHTjtFQTIyR0U7SUFDSTtZQUFBO0VBejJHTjtFQTQyR0U7SUFDSTtZQUFBO0VBMTJHTjtBQUNGLEM7Ozs7QW5EMWFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBa0M4Tko7O0FsQzNOQTtFQUNJO0FrQzhOSjs7QWhDcE9JO0VBREo7SUFFUTtFZ0N3T047QUFDRjs7QWhDck9BO0VBQ0k7RUFDQTtFQUNBO0FnQ3dPSjtBaEN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFZ0N5T047QUFDRjs7QWhDdE9BO0VBR1k7SUFDSTtJQUNBO0VnQ3VPZDtFaEN6T1U7SUFDSTtJQUNBO0VnQzJPZDtFaEM3T1U7SUFDSTtJQUNBO0VnQytPZDtFaENqUFU7SUFDSTtJQUNBO0VnQ21QZDtFaENyUFU7SUFDSTtJQUNBO0VnQ3VQZDtFaEN6UFU7SUFDSTtJQUNBO0VnQzJQZDtFaEM3UFU7SUFDSTtJQUNBO0VnQytQZDtFaENqUVU7SUFDSTtJQUNBO0VnQ21RZDtFaENyUVU7SUFDSTtJQUNBO0VnQ3VRZDtFaEN6UVU7SUFDSTtJQUNBO0VnQzJRZDtFaEM3UVU7SUFDSTtJQUNBO0VnQytRZDtFaENqUlU7SUFDSTtJQUNBO0VnQ21SZDtFaEM5UUU7SUFDSTtFZ0NnUk47QUFDRjtBaEMzUVE7RUFESjtJQUVRO0VnQzhRVjtBQUNGOztBL0JuVEE7O0VBQUE7QUNBQTs7RUFBQTtBOEI2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BENzFFZ0I7RW9EODFFaEIsYzdCbjVFUztFNkJvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7RUFDQTtVQUFBO0FBNzFHWjtBQSsxR1k7RUFDSTtFQUNBO0VBQ0EsbUI3QjV0SE87RTZCNnRIUDtBQTcxR2hCO0FBKzFHZ0I7RUFDSTtBQTcxR3BCO0FBZzJHZ0I7RUFDSTtBQTkxR3BCO0FBazJHWTtFQUNJO0VBQ0E7RUFDQSxjN0JodkhPO0E2QmdadkI7QUFrMkdnQjtFQUNJO0FBaDJHcEI7QUFtMkdnQjtFQUNJO0FBajJHcEIsQzs7OztBcERoYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FtQzhOSjs7QW5DM05BO0VBQ0k7QW1DOE5KOztBakNwT0k7RUFESjtJQUVRO0VpQ3dPTjtBQUNGOztBakNyT0E7RUFDSTtFQUNBO0VBQ0E7QWlDd09KO0FqQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VpQ3lPTjtBQUNGOztBakN0T0E7RUFHWTtJQUNJO0lBQ0E7RWlDdU9kO0VqQ3pPVTtJQUNJO0lBQ0E7RWlDMk9kO0VqQzdPVTtJQUNJO0lBQ0E7RWlDK09kO0VqQ2pQVTtJQUNJO0lBQ0E7RWlDbVBkO0VqQ3JQVTtJQUNJO0lBQ0E7RWlDdVBkO0VqQ3pQVTtJQUNJO0lBQ0E7RWlDMlBkO0VqQzdQVTtJQUNJO0lBQ0E7RWlDK1BkO0VqQ2pRVTtJQUNJO0lBQ0E7RWlDbVFkO0VqQ3JRVTtJQUNJO0lBQ0E7RWlDdVFkO0VqQ3pRVTtJQUNJO0lBQ0E7RWlDMlFkO0VqQzdRVTtJQUNJO0lBQ0E7RWlDK1FkO0VqQ2pSVTtJQUNJO0lBQ0E7RWlDbVJkO0VqQzlRRTtJQUNJO0VpQ2dSTjtBQUNGO0FqQzNRUTtFQURKO0lBRVE7RWlDOFFWO0FBQ0Y7O0FoQ25UQTs7RUFBQTtBQ0FBOztFQUFBO0ErQjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDckQ3MUVnQjtFcUQ4MUVoQixjOUJuNUVTO0U4Qm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUExOEZRO0VBQ0k7RUFDQSxjOUJsd0JXO0E4QjJYdkIsQzs7OztBckR0WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FvQzhOSjs7QXBDM05BO0VBQ0k7QW9DOE5KOztBbENwT0k7RUFESjtJQUVRO0VrQ3dPTjtBQUNGOztBbENyT0E7RUFDSTtFQUNBO0VBQ0E7QWtDd09KO0FsQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VrQ3lPTjtBQUNGOztBbEN0T0E7RUFHWTtJQUNJO0lBQ0E7RWtDdU9kO0VsQ3pPVTtJQUNJO0lBQ0E7RWtDMk9kO0VsQzdPVTtJQUNJO0lBQ0E7RWtDK09kO0VsQ2pQVTtJQUNJO0lBQ0E7RWtDbVBkO0VsQ3JQVTtJQUNJO0lBQ0E7RWtDdVBkO0VsQ3pQVTtJQUNJO0lBQ0E7RWtDMlBkO0VsQzdQVTtJQUNJO0lBQ0E7RWtDK1BkO0VsQ2pRVTtJQUNJO0lBQ0E7RWtDbVFkO0VsQ3JRVTtJQUNJO0lBQ0E7RWtDdVFkO0VsQ3pRVTtJQUNJO0lBQ0E7RWtDMlFkO0VsQzdRVTtJQUNJO0lBQ0E7RWtDK1FkO0VsQ2pSVTtJQUNJO0lBQ0E7RWtDbVJkO0VsQzlRRTtJQUNJO0VrQ2dSTjtBQUNGO0FsQzNRUTtFQURKO0lBRVE7RWtDOFFWO0FBQ0Y7O0FqQ25UQTs7RUFBQTtBQ0FBOztFQUFBO0FnQzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdEQ3MUVnQjtFc0Q4MUVoQixjL0JuNUVTO0UrQm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUF0N0ZJO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7QUEzWlI7QUE2WlE7RTNDbnhCSiw2RUFGaUI7RUFFakIscUVBRmlCO0UyQ3V4QlQ7RUFDQSxhQVZVO0VBV1YsY0FYVTtFQVlWO0VBQ0E7RUFDQTtBQTNaWjtBQTZaWTtFQUNJO0FBM1poQjtBQThaWTtFQUVJLHFCL0JsekJLO0UrQm16Qkw7QUE3WmhCO0FBaWFRO0VBQ0k7TUFBQTtVQUFBO0FBL1paLEM7Ozs7QXREelpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUM4Tko7O0FyQzNOQTtFQUNJO0FxQzhOSjs7QW5DcE9JO0VBREo7SUFFUTtFbUN3T047QUFDRjs7QW5Dck9BO0VBQ0k7RUFDQTtFQUNBO0FtQ3dPSjtBbkN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUN5T047QUFDRjs7QW5DdE9BO0VBR1k7SUFDSTtJQUNBO0VtQ3VPZDtFbkN6T1U7SUFDSTtJQUNBO0VtQzJPZDtFbkM3T1U7SUFDSTtJQUNBO0VtQytPZDtFbkNqUFU7SUFDSTtJQUNBO0VtQ21QZDtFbkNyUFU7SUFDSTtJQUNBO0VtQ3VQZDtFbkN6UFU7SUFDSTtJQUNBO0VtQzJQZDtFbkM3UFU7SUFDSTtJQUNBO0VtQytQZDtFbkNqUVU7SUFDSTtJQUNBO0VtQ21RZDtFbkNyUVU7SUFDSTtJQUNBO0VtQ3VRZDtFbkN6UVU7SUFDSTtJQUNBO0VtQzJRZDtFbkM3UVU7SUFDSTtJQUNBO0VtQytRZDtFbkNqUlU7SUFDSTtJQUNBO0VtQ21SZDtFbkM5UUU7SUFDSTtFbUNnUk47QUFDRjtBbkMzUVE7RUFESjtJQUVRO0VtQzhRVjtBQUNGOztBbENuVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZENzFFZ0I7RXVEODFFaEIsY2hDbjVFUztFZ0NvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBdDdGSTtFQUNJO0VBQUE7RUFBQTtFQUNBO0FBM1pSO0FBNlpRO0U1Q254QkosNkVBRmlCO0VBRWpCLHFFQUZpQjtFNEN1eEJUO0VBQ0EsYUFWVTtFQVdWLGNBWFU7RUFZVjtFQUNBO0VBQ0E7QUEzWlo7QUE2Wlk7RUFDSTtBQTNaaEI7QUE4Wlk7RUFFSSxxQmhDbHpCSztFZ0NtekJMO0FBN1poQjtBQWlhUTtFQUNJO01BQUE7VUFBQTtBQS9aWixDOzs7O0F2RHpaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNDOE5KOztBdEMzTkE7RUFDSTtBc0M4Tko7O0FwQ3BPSTtFQURKO0lBRVE7RW9Dd09OO0FBQ0Y7O0FwQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBb0N3T0o7QXBDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9DeU9OO0FBQ0Y7O0FwQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFb0N1T2Q7RXBDek9VO0lBQ0k7SUFDQTtFb0MyT2Q7RXBDN09VO0lBQ0k7SUFDQTtFb0MrT2Q7RXBDalBVO0lBQ0k7SUFDQTtFb0NtUGQ7RXBDclBVO0lBQ0k7SUFDQTtFb0N1UGQ7RXBDelBVO0lBQ0k7SUFDQTtFb0MyUGQ7RXBDN1BVO0lBQ0k7SUFDQTtFb0MrUGQ7RXBDalFVO0lBQ0k7SUFDQTtFb0NtUWQ7RXBDclFVO0lBQ0k7SUFDQTtFb0N1UWQ7RXBDelFVO0lBQ0k7SUFDQTtFb0MyUWQ7RXBDN1FVO0lBQ0k7SUFDQTtFb0MrUWQ7RXBDalJVO0lBQ0k7SUFDQTtFb0NtUmQ7RXBDOVFFO0lBQ0k7RW9DZ1JOO0FBQ0Y7QXBDM1FRO0VBREo7SUFFUTtFb0M4UVY7QUFDRjs7QW5DblRBOztFQUFBO0FDQUE7O0VBQUE7QWtDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4RDcxRWdCO0V3RDgxRWhCLGNqQ241RVM7RWlDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXQ3Rkk7RUFDSTtFQUFBO0VBQUE7RUFDQTtBQTNaUjtBQTZaUTtFN0NueEJKLDZFQUZpQjtFQUVqQixxRUFGaUI7RTZDdXhCVDtFQUNBLGFBVlU7RUFXVixjQVhVO0VBWVY7RUFDQTtFQUNBO0FBM1paO0FBNlpZO0VBQ0k7QUEzWmhCO0FBOFpZO0VBRUkscUJqQ2x6Qks7RWlDbXpCTDtBQTdaaEI7QUFpYVE7RUFDSTtNQUFBO1VBQUE7QUEvWlosQzs7OztBeER6WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1QzhOSjs7QXZDM05BO0VBQ0k7QXVDOE5KOztBckNwT0k7RUFESjtJQUVRO0VxQ3dPTjtBQUNGOztBckNyT0E7RUFDSTtFQUNBO0VBQ0E7QXFDd09KO0FyQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxQ3lPTjtBQUNGOztBckN0T0E7RUFHWTtJQUNJO0lBQ0E7RXFDdU9kO0VyQ3pPVTtJQUNJO0lBQ0E7RXFDMk9kO0VyQzdPVTtJQUNJO0lBQ0E7RXFDK09kO0VyQ2pQVTtJQUNJO0lBQ0E7RXFDbVBkO0VyQ3JQVTtJQUNJO0lBQ0E7RXFDdVBkO0VyQ3pQVTtJQUNJO0lBQ0E7RXFDMlBkO0VyQzdQVTtJQUNJO0lBQ0E7RXFDK1BkO0VyQ2pRVTtJQUNJO0lBQ0E7RXFDbVFkO0VyQ3JRVTtJQUNJO0lBQ0E7RXFDdVFkO0VyQ3pRVTtJQUNJO0lBQ0E7RXFDMlFkO0VyQzdRVTtJQUNJO0lBQ0E7RXFDK1FkO0VyQ2pSVTtJQUNJO0lBQ0E7RXFDbVJkO0VyQzlRRTtJQUNJO0VxQ2dSTjtBQUNGO0FyQzNRUTtFQURKO0lBRVE7RXFDOFFWO0FBQ0Y7O0FwQ25UQTs7RUFBQTtBQ0FBOztFQUFBO0FtQzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekQ3MUVnQjtFeUQ4MUVoQixjbENuNUVTO0VrQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUF6NEZJO0UvQ3YwQkE7RUFvQkE7RStDc3pCSTtFQUNBLGNsQ3IwQmU7QWtDNlh2QjtBQTBjUTtFQUNJO0VBQ0E7RUFDQTtBQXhjWjtBQTJjUTtFQUNJLGNsQ3oxQlM7QWtDZ1pyQjtBQTRjUTtFQUVJLGNsQzcxQlE7QWtDa1pwQixDOzs7O0F6RG5aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdDOE5KOztBeEMzTkE7RUFDSTtBd0M4Tko7O0F0Q3BPSTtFQURKO0lBRVE7RXNDd09OO0FBQ0Y7O0F0Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBc0N3T0o7QXRDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNDeU9OO0FBQ0Y7O0F0Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFc0N1T2Q7RXRDek9VO0lBQ0k7SUFDQTtFc0MyT2Q7RXRDN09VO0lBQ0k7SUFDQTtFc0MrT2Q7RXRDalBVO0lBQ0k7SUFDQTtFc0NtUGQ7RXRDclBVO0lBQ0k7SUFDQTtFc0N1UGQ7RXRDelBVO0lBQ0k7SUFDQTtFc0MyUGQ7RXRDN1BVO0lBQ0k7SUFDQTtFc0MrUGQ7RXRDalFVO0lBQ0k7SUFDQTtFc0NtUWQ7RXRDclFVO0lBQ0k7SUFDQTtFc0N1UWQ7RXRDelFVO0lBQ0k7SUFDQTtFc0MyUWQ7RXRDN1FVO0lBQ0k7SUFDQTtFc0MrUWQ7RXRDalJVO0lBQ0k7SUFDQTtFc0NtUmQ7RXRDOVFFO0lBQ0k7RXNDZ1JOO0FBQ0Y7QXRDM1FRO0VBREo7SUFFUTtFc0M4UVY7QUFDRjs7QXJDblRBOztFQUFBO0FDQUE7O0VBQUE7QW9DNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxRDcxRWdCO0UwRDgxRWhCLGNuQ241RVM7RW1DbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQS8yRkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZdkRoMkJzQjtFdURvdEgxQjtFQUNBO0FBcjFHSjtBQXUxR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQSx5Qm5DdnVIWTtFbUN3dUhaLFduQ3B1SGM7RW1DcXVIZDtFQUNBO0FBcjFHUjtBQXUxR1E7RUFDSSx5Qm5DbnRIVztBbUM4WHZCO0FBdzFHUTtFQUNJO0VBQ0EseUJuQ3h1SFc7QW1Da1p2QjtBQXkxR1E7RUFDSSx5Qm5DdHZIUTtBbUMrWnBCO0FBMDFHUTtFQUVJLFduQ3Z2SFU7RW1Dd3ZIVixnQ0M1dkhnQjtFRDZ2SGhCO0VBQ0E7RUFDQSx5Qm5DcnZIVztFbUNzdkhYO1VBQUE7QUF6MUdaO0FBNjFHSTtFQUNJO0FBMzFHUixDOzs7O0ExRDNhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBDOE5KOztBMUMzTkE7RUFDSTtBMEM4Tko7O0F4Q3BPSTtFQURKO0lBRVE7RXdDd09OO0FBQ0Y7O0F4Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBd0N3T0o7QXhDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdDeU9OO0FBQ0Y7O0F4Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFd0N1T2Q7RXhDek9VO0lBQ0k7SUFDQTtFd0MyT2Q7RXhDN09VO0lBQ0k7SUFDQTtFd0MrT2Q7RXhDalBVO0lBQ0k7SUFDQTtFd0NtUGQ7RXhDclBVO0lBQ0k7SUFDQTtFd0N1UGQ7RXhDelBVO0lBQ0k7SUFDQTtFd0MyUGQ7RXhDN1BVO0lBQ0k7SUFDQTtFd0MrUGQ7RXhDalFVO0lBQ0k7SUFDQTtFd0NtUWQ7RXhDclFVO0lBQ0k7SUFDQTtFd0N1UWQ7RXhDelFVO0lBQ0k7SUFDQTtFd0MyUWQ7RXhDN1FVO0lBQ0k7SUFDQTtFd0MrUWQ7RXhDalJVO0lBQ0k7SUFDQTtFd0NtUmQ7RXhDOVFFO0lBQ0k7RXdDZ1JOO0FBQ0Y7QXhDM1FRO0VBREo7SUFFUTtFd0M4UVY7QUFDRjs7QXZDblRBOztFQUFBO0FDQUE7O0VBQUE7QXNDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1RDcxRWdCO0U0RDgxRWhCLGNyQ241RVM7RXFDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQS8xRkk7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLFdBUDhCO0VBUTlCLFlBUjhCO0VBUzlCLG1CQVQ4QjtFQVU5QixtQnJDNTNCWTtBcUMwWXBCO0FBb2ZRO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQWxCMEI7RUFtQjFCLFdBbkIwQjtFQW9CMUIsbUJyQ3Q0QlE7RXFDdTRCUixVQ3g0QlM7QURxWnJCO0FBc2ZRO0VBQ0k7VUFBQTtBQXBmWjtBQXVmUTtFQUNJO1VBQUE7QUFyZlo7QUF3ZlE7RWxEOTRCSjtFQW9CQTtFa0Q2M0JRO0VBQ0E7RUFDQTtFQUNBLFdyQ3A1QlU7RXFDcTVCVjtFQUNBO0FBdGZaLEM7Ozs7QTVEcmFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNEM4Tko7O0E1QzNOQTtFQUNJO0E0QzhOSjs7QTFDcE9JO0VBREo7SUFFUTtFMEN3T047QUFDRjs7QTFDck9BO0VBQ0k7RUFDQTtFQUNBO0EwQ3dPSjtBMUN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMEN5T047QUFDRjs7QTFDdE9BO0VBR1k7SUFDSTtJQUNBO0UwQ3VPZDtFMUN6T1U7SUFDSTtJQUNBO0UwQzJPZDtFMUM3T1U7SUFDSTtJQUNBO0UwQytPZDtFMUNqUFU7SUFDSTtJQUNBO0UwQ21QZDtFMUNyUFU7SUFDSTtJQUNBO0UwQ3VQZDtFMUN6UFU7SUFDSTtJQUNBO0UwQzJQZDtFMUM3UFU7SUFDSTtJQUNBO0UwQytQZDtFMUNqUVU7SUFDSTtJQUNBO0UwQ21RZDtFMUNyUVU7SUFDSTtJQUNBO0UwQ3VRZDtFMUN6UVU7SUFDSTtJQUNBO0UwQzJRZDtFMUM3UVU7SUFDSTtJQUNBO0UwQytRZDtFMUNqUlU7SUFDSTtJQUNBO0UwQ21SZDtFMUM5UUU7SUFDSTtFMENnUk47QUFDRjtBMUMzUVE7RUFESjtJQUVRO0UwQzhRVjtBQUNGOztBekNuVEE7O0VBQUE7QUNBQTs7RUFBQTtBd0M2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzlENzFFZ0I7RThEODFFaEIsY3ZDbjVFUztFdUNvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSTtBQTkxR1o7QUFpMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUEvMUdaO0FBaTJHWTtFQUNJO0FBLzFHaEIsQzs7OztBOUQ5WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2QzhOSjs7QTdDM05BO0VBQ0k7QTZDOE5KOztBM0NwT0k7RUFESjtJQUVRO0UyQ3dPTjtBQUNGOztBM0NyT0E7RUFDSTtFQUNBO0VBQ0E7QTJDd09KO0EzQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UyQ3lPTjtBQUNGOztBM0N0T0E7RUFHWTtJQUNJO0lBQ0E7RTJDdU9kO0UzQ3pPVTtJQUNJO0lBQ0E7RTJDMk9kO0UzQzdPVTtJQUNJO0lBQ0E7RTJDK09kO0UzQ2pQVTtJQUNJO0lBQ0E7RTJDbVBkO0UzQ3JQVTtJQUNJO0lBQ0E7RTJDdVBkO0UzQ3pQVTtJQUNJO0lBQ0E7RTJDMlBkO0UzQzdQVTtJQUNJO0lBQ0E7RTJDK1BkO0UzQ2pRVTtJQUNJO0lBQ0E7RTJDbVFkO0UzQ3JRVTtJQUNJO0lBQ0E7RTJDdVFkO0UzQ3pRVTtJQUNJO0lBQ0E7RTJDMlFkO0UzQzdRVTtJQUNJO0lBQ0E7RTJDK1FkO0UzQ2pSVTtJQUNJO0lBQ0E7RTJDbVJkO0UzQzlRRTtJQUNJO0UyQ2dSTjtBQUNGO0EzQzNRUTtFQURKO0lBRVE7RTJDOFFWO0FBQ0Y7O0ExQ25UQTs7RUFBQTtBQ0FBOztFQUFBO0F5QzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0Q3MUVnQjtFK0Q4MUVoQixjeENuNUVTO0V3Q281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQSxjeEN6dEhlO0F3QzRYdkI7QUFnMkdZO0VBQ0k7QUE5MUdoQixDOzs7O0EvRDFZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThDOE5KOztBOUMzTkE7RUFDSTtBOEM4Tko7O0E1Q3BPSTtFQURKO0lBRVE7RTRDd09OO0FBQ0Y7O0E1Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBNEN3T0o7QTVDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRDeU9OO0FBQ0Y7O0E1Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFNEN1T2Q7RTVDek9VO0lBQ0k7SUFDQTtFNEMyT2Q7RTVDN09VO0lBQ0k7SUFDQTtFNEMrT2Q7RTVDalBVO0lBQ0k7SUFDQTtFNENtUGQ7RTVDclBVO0lBQ0k7SUFDQTtFNEN1UGQ7RTVDelBVO0lBQ0k7SUFDQTtFNEMyUGQ7RTVDN1BVO0lBQ0k7SUFDQTtFNEMrUGQ7RTVDalFVO0lBQ0k7SUFDQTtFNENtUWQ7RTVDclFVO0lBQ0k7SUFDQTtFNEN1UWQ7RTVDelFVO0lBQ0k7SUFDQTtFNEMyUWQ7RTVDN1FVO0lBQ0k7SUFDQTtFNEMrUWQ7RTVDalJVO0lBQ0k7SUFDQTtFNENtUmQ7RTVDOVFFO0lBQ0k7RTRDZ1JOO0FBQ0Y7QTVDM1FRO0VBREo7SUFFUTtFNEM4UVY7QUFDRjs7QTNDblRBOztFQUFBO0FDQUE7O0VBQUE7QTBDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoRTcxRWdCO0VnRTgxRWhCLGN6Q241RVM7RXlDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTF2Rkk7RUFDSTtBQXZsQlI7QUF5bEJRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF2bEJaO0FBMGxCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF4bEJaO0FBMmxCZ0I7RUFDSTtBQXpsQnBCO0FBOGxCZ0I7RUFDSTtBQTVsQnBCO0FBK2xCZ0I7RUFDSTtBQTdsQnBCO0FBa21CUTtFckQ3K0JKLDJDQUZpQjtFQUVqQixtQ0FGaUI7RXFEaS9CVDtFQUNBLGVBeEMrQjtFQXlDL0IsV0F6QytCO0VBMEMvQixnQkExQytCO0VBMkMvQixZQTNDK0I7RUE0Qy9CLGNoRWwvQlU7QWdFa1p0QjtBQWttQlk7RUFDSTtBQWhtQmhCO0FBbW1CWTtFQUNJO0VBQ0E7VUFBQTtBQWptQmhCO0FBcW1CUTtFQUVJLGN6Q2xoQ1M7QXlDOGFyQjtBQXVtQlE7RUFDSSxjekNyaENRO0F5Q2dicEI7QUF3bUJRO0VBQ0k7QUF0bUJaO0FBeW1CUTtFQUNJO0FBdm1CWixDOzs7O0FoRXZiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStDOE5KOztBL0MzTkE7RUFDSTtBK0M4Tko7O0E3Q3BPSTtFQURKO0lBRVE7RTZDd09OO0FBQ0Y7O0E3Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBNkN3T0o7QTdDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZDeU9OO0FBQ0Y7O0E3Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFNkN1T2Q7RTdDek9VO0lBQ0k7SUFDQTtFNkMyT2Q7RTdDN09VO0lBQ0k7SUFDQTtFNkMrT2Q7RTdDalBVO0lBQ0k7SUFDQTtFNkNtUGQ7RTdDclBVO0lBQ0k7SUFDQTtFNkN1UGQ7RTdDelBVO0lBQ0k7SUFDQTtFNkMyUGQ7RTdDN1BVO0lBQ0k7SUFDQTtFNkMrUGQ7RTdDalFVO0lBQ0k7SUFDQTtFNkNtUWQ7RTdDclFVO0lBQ0k7SUFDQTtFNkN1UWQ7RTdDelFVO0lBQ0k7SUFDQTtFNkMyUWQ7RTdDN1FVO0lBQ0k7SUFDQTtFNkMrUWQ7RTdDalJVO0lBQ0k7SUFDQTtFNkNtUmQ7RTdDOVFFO0lBQ0k7RTZDZ1JOO0FBQ0Y7QTdDM1FRO0VBREo7SUFFUTtFNkM4UVY7QUFDRjs7QTVDblRBOztFQUFBO0FDQUE7O0VBQUE7QTJDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqRTcxRWdCO0VpRTgxRWhCLGMxQ241RVM7RTBDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQSx5QmpFN3NIWTtBaUUrV3hCO0FuRHRXSTtFbURrc0hJO0lBS1E7RUE3MUdkO0FBQ0Y7QUFpMkdZO0V2RHZ1SFI7RXVEeXVIWTtBQS8xR2hCO0FBbTJHUTtFQUNJO0FBajJHWixDOzs7O0FqRWxaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdEOE5KOztBaEQzTkE7RUFDSTtBZ0Q4Tko7O0E5Q3BPSTtFQURKO0lBRVE7RThDd09OO0FBQ0Y7O0E5Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBOEN3T0o7QTlDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThDeU9OO0FBQ0Y7O0E5Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFOEN1T2Q7RTlDek9VO0lBQ0k7SUFDQTtFOEMyT2Q7RTlDN09VO0lBQ0k7SUFDQTtFOEMrT2Q7RTlDalBVO0lBQ0k7SUFDQTtFOENtUGQ7RTlDclBVO0lBQ0k7SUFDQTtFOEN1UGQ7RTlDelBVO0lBQ0k7SUFDQTtFOEMyUGQ7RTlDN1BVO0lBQ0k7SUFDQTtFOEMrUGQ7RTlDalFVO0lBQ0k7SUFDQTtFOENtUWQ7RTlDclFVO0lBQ0k7SUFDQTtFOEN1UWQ7RTlDelFVO0lBQ0k7SUFDQTtFOEMyUWQ7RTlDN1FVO0lBQ0k7SUFDQTtFOEMrUWQ7RTlDalJVO0lBQ0k7SUFDQTtFOENtUmQ7RTlDOVFFO0lBQ0k7RThDZ1JOO0FBQ0Y7QTlDM1FRO0VBREo7SUFFUTtFOEM4UVY7QUFDRjs7QTdDblRBOztFQUFBO0FDQUE7O0VBQUE7QTRDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsRTcxRWdCO0VrRTgxRWhCLGMzQ241RVM7RTJDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWxuQkk7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBOEJBO0FBNXZGUjtBQWd1RlE7RXhEemxHSjtFd0QybEdRLGMzQy9sR1c7QTJDaVl2QjtBQWl1RlE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBL3RGWjtBQWl1Rlk7RUFDSTtBQS90RmhCO0FBbXVGUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0FBanVGWjtBQTR1RlE7RUFDSTtNQUFBO1VBQUE7QUExdUZaLEM7Ozs7QWxFN1pBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBaUQ4Tko7O0FqRDNOQTtFQUNJO0FpRDhOSjs7QS9DcE9JO0VBREo7SUFFUTtFK0N3T047QUFDRjs7QS9Dck9BO0VBQ0k7RUFDQTtFQUNBO0ErQ3dPSjtBL0N0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFK0N5T047QUFDRjs7QS9DdE9BO0VBR1k7SUFDSTtJQUNBO0UrQ3VPZDtFL0N6T1U7SUFDSTtJQUNBO0UrQzJPZDtFL0M3T1U7SUFDSTtJQUNBO0UrQytPZDtFL0NqUFU7SUFDSTtJQUNBO0UrQ21QZDtFL0NyUFU7SUFDSTtJQUNBO0UrQ3VQZDtFL0N6UFU7SUFDSTtJQUNBO0UrQzJQZDtFL0M3UFU7SUFDSTtJQUNBO0UrQytQZDtFL0NqUVU7SUFDSTtJQUNBO0UrQ21RZDtFL0NyUVU7SUFDSTtJQUNBO0UrQ3VRZDtFL0N6UVU7SUFDSTtJQUNBO0UrQzJRZDtFL0M3UVU7SUFDSTtJQUNBO0UrQytRZDtFL0NqUlU7SUFDSTtJQUNBO0UrQ21SZDtFL0M5UUU7SUFDSTtFK0NnUk47QUFDRjtBL0MzUVE7RUFESjtJQUVRO0UrQzhRVjtBQUNGOztBOUNuVEE7O0VBQUE7QUNBQTs7RUFBQTtBNkM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q25FNzFFZ0I7RW1FODFFaEIsYzVDbjVFUztFNENvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjNUM5dEhXO0E0Q2dZdkI7QUFnMkdZO0VBRUkseUJuRXR0SFE7QW1FdVh4QixDOzs7O0FuRTlZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWtEOE5KOztBbEQzTkE7RUFDSTtBa0Q4Tko7O0FoRHBPSTtFQURKO0lBRVE7RWdEd09OO0FBQ0Y7O0FoRHJPQTtFQUNJO0VBQ0E7RUFDQTtBZ0R3T0o7QWhEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWdEeU9OO0FBQ0Y7O0FoRHRPQTtFQUdZO0lBQ0k7SUFDQTtFZ0R1T2Q7RWhEek9VO0lBQ0k7SUFDQTtFZ0QyT2Q7RWhEN09VO0lBQ0k7SUFDQTtFZ0QrT2Q7RWhEalBVO0lBQ0k7SUFDQTtFZ0RtUGQ7RWhEclBVO0lBQ0k7SUFDQTtFZ0R1UGQ7RWhEelBVO0lBQ0k7SUFDQTtFZ0QyUGQ7RWhEN1BVO0lBQ0k7SUFDQTtFZ0QrUGQ7RWhEalFVO0lBQ0k7SUFDQTtFZ0RtUWQ7RWhEclFVO0lBQ0k7SUFDQTtFZ0R1UWQ7RWhEelFVO0lBQ0k7SUFDQTtFZ0QyUWQ7RWhEN1FVO0lBQ0k7SUFDQTtFZ0QrUWQ7RWhEalJVO0lBQ0k7SUFDQTtFZ0RtUmQ7RWhEOVFFO0lBQ0k7RWdEZ1JOO0FBQ0Y7QWhEM1FRO0VBREo7SUFFUTtFZ0Q4UVY7QUFDRjs7QS9DblRBOztFQUFBO0FDQUE7O0VBQUE7QThDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NwRTcxRWdCO0VvRTgxRWhCLGM3Q241RVM7RTZDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtBQTcxR1I7QXREdFdJO0VzRGlzSEE7SUFLUTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFFSTtFQUNBLGM3Q2x1SFc7RTZDbXVIWDtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0FBOTFHWjtBQWcyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYzdDMXZISztFNkMydkhMO0VBQ0E7RUFDQSxtQkMzdkhVO0FENloxQixDOzs7O0FwRS9aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9EOE5KOztBcEQzTkE7RUFDSTtBb0Q4Tko7O0FsRHBPSTtFQURKO0lBRVE7RWtEd09OO0FBQ0Y7O0FsRHJPQTtFQUNJO0VBQ0E7RUFDQTtBa0R3T0o7QWxEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtEeU9OO0FBQ0Y7O0FsRHRPQTtFQUdZO0lBQ0k7SUFDQTtFa0R1T2Q7RWxEek9VO0lBQ0k7SUFDQTtFa0QyT2Q7RWxEN09VO0lBQ0k7SUFDQTtFa0QrT2Q7RWxEalBVO0lBQ0k7SUFDQTtFa0RtUGQ7RWxEclBVO0lBQ0k7SUFDQTtFa0R1UGQ7RWxEelBVO0lBQ0k7SUFDQTtFa0QyUGQ7RWxEN1BVO0lBQ0k7SUFDQTtFa0QrUGQ7RWxEalFVO0lBQ0k7SUFDQTtFa0RtUWQ7RWxEclFVO0lBQ0k7SUFDQTtFa0R1UWQ7RWxEelFVO0lBQ0k7SUFDQTtFa0QyUWQ7RWxEN1FVO0lBQ0k7SUFDQTtFa0QrUWQ7RWxEalJVO0lBQ0k7SUFDQTtFa0RtUmQ7RWxEOVFFO0lBQ0k7RWtEZ1JOO0FBQ0Y7QWxEM1FRO0VBREo7SUFFUTtFa0Q4UVY7QUFDRjs7QWpEblRBOztFQUFBO0FDQUE7O0VBQUE7QWdENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RTcxRWdCO0VzRTgxRWhCLGMvQ241RVM7RStDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXBtRlE7RUFDSTtFQUNBLHNCL0M5bUNVO0UrQyttQ1YsWW5FOWtDbUI7QW1FaVcvQjtBQSt1Qlk7RUFDSTtFQUNBO0FBN3VCaEI7QUFndkJZO0VBQ0k7RUFDQTtBQTl1QmhCO0FBazFHSTtFQUNJO0VBQ0E7RUFDQTtBQWgxR1I7QUFtMUdJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQSxtQnRFaHRIaUI7QXNFK1h6QjtBQW8xR0k7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHdDdEVuc0hvQjtBc0VnWDVCO0FBcTFHUTtFQUNJO1VBQUE7QUFuMUdaO0FBdTFHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBcjFHUjtBeEQ5WUk7RXdEK3RIQTtJQU9RO0VBcDFHVjtBQUNGO0FBczFHUTtFQUNJO0VBQ0EsYy9DMXdIUTtBK0NzYnBCO0FBdTFHUTtFQUNJLHVDL0N0dUhZO0UrQ3V1SFosYy9DL3dIUTtBK0MwYnBCO0FBdzFHUTtFQUNJLHlDL0N4dUhZO0UrQ3l1SFosYy9DeHZIYTtBK0NrYXpCO0FBMDFHSTtFM0R6d0hBLGdEQUZpQjtFQUVqQix3Q0FGaUI7RTJENndIYjtFQUNBO0VBQ0Esa0JEN3hIZ0I7RUM4eEhoQixzQi9DenhIYztFK0MweEhkO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXgxR1I7QUEwMUdRO0UzRHJ4SEosZ0RBRmlCO0VBRWpCLHdDQUZpQjtFMkQyeEhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQSxtQi9DdHlIVztBK0M0Y3ZCO0FBNjFHUTtFQUNJO0VBQ0E7QUEzMUdaO0FBODFHUTtFQUNJLG1CL0N6ekhTO0ErQzZkckI7QUE4MUdZO0VBRUksZ0IvQ3h6SE07QStDMmR0QjtBQWkyR1E7RUFDSSxnQi9DN3pIVTtFK0M4ekhWO0VBQ0E7VUFBQTtBQS8xR1o7QUFpMkdZO0VBRUksbUIvQzF6SE87QStDMGR2QjtBQW0yR1k7RUFFSSxnQi9DeDBITTtBK0NzZXRCO0FBbzJHZ0I7RUFFSSxtQi9DbjBIRztBK0NnZXZCO0FBeTJHSTtFQUNJO01BQUE7VUFBQTtFQUNBLHlCL0N6MUhhO0UrQzAxSGI7RUFDQTtFQUNBLFcvQ3YxSGM7RStDdzFIZDtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXYyR1I7QUEwMkdRO0VBRUk7RUFDQTtFQUNBO0FBejJHWjtBQTQyR1E7RUFDSSxzQi9DMzJIVTtFK0M0MkhWLHFCL0NqMUhZO0UrQ2sxSFosYy9DbDFIWTtFK0NtMUhaO0FBMTJHWjtBQSsyR1E7RUFDSTtBQTcyR1o7QUFrM0dJOztFQUVJO0VBQ0E7QUFoM0dSLEM7Ozs7QXRFamhCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFEOE5KOztBckQzTkE7RUFDSTtBcUQ4Tko7O0FuRHBPSTtFQURKO0lBRVE7RW1Ed09OO0FBQ0Y7O0FuRHJPQTtFQUNJO0VBQ0E7RUFDQTtBbUR3T0o7QW5EdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1EeU9OO0FBQ0Y7O0FuRHRPQTtFQUdZO0lBQ0k7SUFDQTtFbUR1T2Q7RW5Eek9VO0lBQ0k7SUFDQTtFbUQyT2Q7RW5EN09VO0lBQ0k7SUFDQTtFbUQrT2Q7RW5EalBVO0lBQ0k7SUFDQTtFbURtUGQ7RW5EclBVO0lBQ0k7SUFDQTtFbUR1UGQ7RW5EelBVO0lBQ0k7SUFDQTtFbUQyUGQ7RW5EN1BVO0lBQ0k7SUFDQTtFbUQrUGQ7RW5EalFVO0lBQ0k7SUFDQTtFbURtUWQ7RW5EclFVO0lBQ0k7SUFDQTtFbUR1UWQ7RW5EelFVO0lBQ0k7SUFDQTtFbUQyUWQ7RW5EN1FVO0lBQ0k7SUFDQTtFbUQrUWQ7RW5EalJVO0lBQ0k7SUFDQTtFbURtUmQ7RW5EOVFFO0lBQ0k7RW1EZ1JOO0FBQ0Y7QW5EM1FRO0VBREo7SUFFUTtFbUQ4UVY7QUFDRjs7QWxEblRBOztFQUFBO0FDQUE7O0VBQUE7QWlENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2RTcxRWdCO0V1RTgxRWhCLGNoRG41RVM7RWdEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLG1CdkU1c0hhO0F1RThXekI7QUFpMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUEvMUdaO0F6RGhYSTtFeUQyc0hJO0lBT1E7RUE5MUdkO0FBQ0Y7QUFnMkdZO0VBQ0k7RUFDQSxXaERsdkhNO0FnRG9adEI7QUFpMkdZO0VBQ0ksdUNoRGx0SFE7RWdEbXRIUixjaEQzdkhJO0FnRDRacEI7QUFrMkdZO0VBQ0kseUNoRHB0SFE7RWdEcXRIUixjaERwdUhTO0FnRG9ZekI7QUFvMkdRO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSx3Q3ZFenRIZ0I7QXVFc1g1QjtBQXEyR1k7RUFDSTtVQUFBO0FBbjJHaEI7QUF1MkdRO0U1RHJ3SEosZ0RBRmlCO0VBRWpCLHdDQUZpQjtFNER5d0hUO0VBQ0E7RUFDQSxrQkZ6eEhZO0VFMHhIWixzQmhEcnhIVTtFZ0RzeEhWO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXIyR1o7QUF1MkdZO0U1RGp4SFIsZ0RBRmlCO0VBRWpCLHdDQUZpQjtFNER1eEhMO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQSxtQmhEbHlITztBZ0QyYnZCO0FBMDJHWTtFQUNJO0VBQ0E7QUF4MkdoQjtBQTIyR1k7RUFDSSxtQmhEcnpISztBZ0Q0Y3JCO0FBMjJHZ0I7RUFFSSxnQmhEcHpIRTtBZ0QwY3RCO0FBODJHWTtFQUNJLGdCaER6ekhNO0VnRDB6SE47RUFDQTtVQUFBO0FBNTJHaEI7QUE4MkdnQjtFQUVJLG1CaER0ekhHO0FnRHljdkI7QUFnM0dnQjtFQUVJLGdCaERwMEhFO0FnRHFkdEI7QUFpM0dvQjtFQUVJLG1CaEQvekhEO0FnRCtjdkI7QUFzM0dRO0VBQ0k7TUFBQTtVQUFBO0VBQ0EseUJoRHIxSFM7RWdEczFIVDtFQUNBO0VBQ0EsV2hEbjFIVTtFZ0RvMUhWO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcDNHWjtBQXMzR1k7RUFFSTtFQUNBO0VBQ0E7QUFyM0doQjtBQXczR1k7RUFDSSxzQmhEdDJITTtFZ0R1MkhOLHFCaEQ1MEhRO0VnRDYwSFIsY2hENzBIUTtFZ0Q4MEhSO0FBdDNHaEI7QUEwM0dROztFQUVJO0VBQ0E7QUF4M0daO0FBNDNHWTs7RUFFSTtBQTEzR2hCO0FBNjNHWTtFQUNJO0FBMzNHaEIsQzs7OztBdkVwZ0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0Q4Tko7O0F0RDNOQTtFQUNJO0FzRDhOSjs7QXBEcE9JO0VBREo7SUFFUTtFb0R3T047QUFDRjs7QXBEck9BO0VBQ0k7RUFDQTtFQUNBO0FvRHdPSjtBcER0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0R5T047QUFDRjs7QXBEdE9BO0VBR1k7SUFDSTtJQUNBO0VvRHVPZDtFcER6T1U7SUFDSTtJQUNBO0VvRDJPZDtFcEQ3T1U7SUFDSTtJQUNBO0VvRCtPZDtFcERqUFU7SUFDSTtJQUNBO0VvRG1QZDtFcERyUFU7SUFDSTtJQUNBO0VvRHVQZDtFcER6UFU7SUFDSTtJQUNBO0VvRDJQZDtFcEQ3UFU7SUFDSTtJQUNBO0VvRCtQZDtFcERqUVU7SUFDSTtJQUNBO0VvRG1RZDtFcERyUVU7SUFDSTtJQUNBO0VvRHVRZDtFcER6UVU7SUFDSTtJQUNBO0VvRDJRZDtFcEQ3UVU7SUFDSTtJQUNBO0VvRCtRZDtFcERqUlU7SUFDSTtJQUNBO0VvRG1SZDtFcEQ5UUU7SUFDSTtFb0RnUk47QUFDRjtBcEQzUVE7RUFESjtJQUVRO0VvRDhRVjtBQUNGOztBbkRuVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0Q2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hFNzFFZ0I7RXdFODFFaEIsY2pEbjVFUztFaURvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7QUE3MUdaO0FBKzFHWTtFQUNJLHlCakR6dEhPO0FpRDRYdkI7QUFpMkdRO0VBQ0k7RUFDQTtFQUNBO0FBLzFHWjtBQWsyR1E7RUFDSTtBQWgyR1o7QUFrMkdZO0U1RGp2SFI7RUFDQTtFQUNBO0U0RGt2SFk7VUFBQTtBQS8xR2hCO0FBazJHWTtFNUQ1dUhSO0VBQ0E7RUFDQTtFRERBLHlDQUZpQjtFQUVqQixpQ0FGaUI7RTZEaXZITDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7QUEvMUdoQjtBQWkyR2dCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0FBLzFHcEIsQzs7OztBeEV2YkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1RDhOSjs7QXZEM05BO0VBQ0k7QXVEOE5KOztBckRwT0k7RUFESjtJQUVRO0VxRHdPTjtBQUNGOztBckRyT0E7RUFDSTtFQUNBO0VBQ0E7QXFEd09KO0FyRHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxRHlPTjtBQUNGOztBckR0T0E7RUFHWTtJQUNJO0lBQ0E7RXFEdU9kO0VyRHpPVTtJQUNJO0lBQ0E7RXFEMk9kO0VyRDdPVTtJQUNJO0lBQ0E7RXFEK09kO0VyRGpQVTtJQUNJO0lBQ0E7RXFEbVBkO0VyRHJQVTtJQUNJO0lBQ0E7RXFEdVBkO0VyRHpQVTtJQUNJO0lBQ0E7RXFEMlBkO0VyRDdQVTtJQUNJO0lBQ0E7RXFEK1BkO0VyRGpRVTtJQUNJO0lBQ0E7RXFEbVFkO0VyRHJRVTtJQUNJO0lBQ0E7RXFEdVFkO0VyRHpRVTtJQUNJO0lBQ0E7RXFEMlFkO0VyRDdRVTtJQUNJO0lBQ0E7RXFEK1FkO0VyRGpSVTtJQUNJO0lBQ0E7RXFEbVJkO0VyRDlRRTtJQUNJO0VxRGdSTjtBQUNGO0FyRDNRUTtFQURKO0lBRVE7RXFEOFFWO0FBQ0Y7O0FwRG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FtRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekU3MUVnQjtFeUU4MUVoQixjbERuNUVTO0VrRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFoNEVJO0UvRGgxQ0E7RStEazFDSTtFQUNBO0VBQ0E7RUFDQTtBQWo5QlI7QUFtOUJRO0VBQ0k7RUFDQTtFQUNBLGNsRHIxQ1c7QWtEb1l2QjtBQTY5Qkk7RUFDSTtFQUNBO0FBMzlCUjtBQXk5Qkk7RUFDSTtFQUNBO0FBdjlCUjtBQXE5Qkk7RUFDSTtFQUNBO0FBbjlCUjtBQXF4QlE7RUFDSTtFQUNBO0FBbnhCWjtBQXN4QlE7RUFDSTtFQUNBO0FBcHhCWjtBQXV4QlE7RUFDSTtFQUNBO0FBcnhCWjtBQXd4QlE7RUFDSTtFQUNBO0FBdHhCWjtBQXl4QlE7RUFDSTtFQUNBO0FBdnhCWjtBQTB4QlE7RUFDSTtFQUNBO0FBeHhCWixDOzs7O0F6RWxiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdEOE5KOztBeEQzTkE7RUFDSTtBd0Q4Tko7O0F0RHBPSTtFQURKO0lBRVE7RXNEd09OO0FBQ0Y7O0F0RHJPQTtFQUNJO0VBQ0E7RUFDQTtBc0R3T0o7QXREdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNEeU9OO0FBQ0Y7O0F0RHRPQTtFQUdZO0lBQ0k7SUFDQTtFc0R1T2Q7RXREek9VO0lBQ0k7SUFDQTtFc0QyT2Q7RXREN09VO0lBQ0k7SUFDQTtFc0QrT2Q7RXREalBVO0lBQ0k7SUFDQTtFc0RtUGQ7RXREclBVO0lBQ0k7SUFDQTtFc0R1UGQ7RXREelBVO0lBQ0k7SUFDQTtFc0QyUGQ7RXREN1BVO0lBQ0k7SUFDQTtFc0QrUGQ7RXREalFVO0lBQ0k7SUFDQTtFc0RtUWQ7RXREclFVO0lBQ0k7SUFDQTtFc0R1UWQ7RXREelFVO0lBQ0k7SUFDQTtFc0QyUWQ7RXREN1FVO0lBQ0k7SUFDQTtFc0QrUWQ7RXREalJVO0lBQ0k7SUFDQTtFc0RtUmQ7RXREOVFFO0lBQ0k7RXNEZ1JOO0FBQ0Y7QXREM1FRO0VBREo7SUFFUTtFc0Q4UVY7QUFDRjs7QXJEblRBOztFQUFBO0FDQUE7O0VBQUE7QW9ENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxRTcxRWdCO0UwRTgxRWhCLGNuRG41RVM7RW1EbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQW5nRkk7RUFDSTtFQUNBO0FBOTBCUjtBQWcxQlE7RUFDSTtBQTkwQlosQzs7OztBMUV6WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5RDhOSjs7QXpEM05BO0VBQ0k7QXlEOE5KOztBdkRwT0k7RUFESjtJQUVRO0V1RHdPTjtBQUNGOztBdkRyT0E7RUFDSTtFQUNBO0VBQ0E7QXVEd09KO0F2RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1RHlPTjtBQUNGOztBdkR0T0E7RUFHWTtJQUNJO0lBQ0E7RXVEdU9kO0V2RHpPVTtJQUNJO0lBQ0E7RXVEMk9kO0V2RDdPVTtJQUNJO0lBQ0E7RXVEK09kO0V2RGpQVTtJQUNJO0lBQ0E7RXVEbVBkO0V2RHJQVTtJQUNJO0lBQ0E7RXVEdVBkO0V2RHpQVTtJQUNJO0lBQ0E7RXVEMlBkO0V2RDdQVTtJQUNJO0lBQ0E7RXVEK1BkO0V2RGpRVTtJQUNJO0lBQ0E7RXVEbVFkO0V2RHJRVTtJQUNJO0lBQ0E7RXVEdVFkO0V2RHpRVTtJQUNJO0lBQ0E7RXVEMlFkO0V2RDdRVTtJQUNJO0lBQ0E7RXVEK1FkO0V2RGpSVTtJQUNJO0lBQ0E7RXVEbVJkO0V2RDlRRTtJQUNJO0V1RGdSTjtBQUNGO0F2RDNRUTtFQURKO0lBRVE7RXVEOFFWO0FBQ0Y7O0F0RG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FxRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0U3MUVnQjtFMkU4MUVoQixjcERuNUVTO0VvRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUEzK0VJO0VBQ0kseUIzRS9zQ2lCO0EyRXlXekI7QUF3MkJRO0VBQ0k7QUF0MkJaO0FBeTJCUTtFQUNJO0VBQ0E7QUF2MkJaO0FBMDJCUTtFQUNJO0VBQ0E7QUF4MkJaO0FBMjJCUTtFQUNJO0VBQ0E7QUF6MkJaLEM7Ozs7QTNFcFpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMEQ4Tko7O0ExRDNOQTtFQUNJO0EwRDhOSjs7QXhEcE9JO0VBREo7SUFFUTtFd0R3T047QUFDRjs7QXhEck9BO0VBQ0k7RUFDQTtFQUNBO0F3RHdPSjtBeER0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFd0R5T047QUFDRjs7QXhEdE9BO0VBR1k7SUFDSTtJQUNBO0V3RHVPZDtFeER6T1U7SUFDSTtJQUNBO0V3RDJPZDtFeEQ3T1U7SUFDSTtJQUNBO0V3RCtPZDtFeERqUFU7SUFDSTtJQUNBO0V3RG1QZDtFeERyUFU7SUFDSTtJQUNBO0V3RHVQZDtFeER6UFU7SUFDSTtJQUNBO0V3RDJQZDtFeEQ3UFU7SUFDSTtJQUNBO0V3RCtQZDtFeERqUVU7SUFDSTtJQUNBO0V3RG1RZDtFeERyUVU7SUFDSTtJQUNBO0V3RHVRZDtFeER6UVU7SUFDSTtJQUNBO0V3RDJRZDtFeEQ3UVU7SUFDSTtJQUNBO0V3RCtRZDtFeERqUlU7SUFDSTtJQUNBO0V3RG1SZDtFeEQ5UUU7SUFDSTtFd0RnUk47QUFDRjtBeEQzUVE7RUFESjtJQUVRO0V3RDhRVjtBQUNGOztBdkRuVEE7O0VBQUE7QUNBQTs7RUFBQTtBc0Q2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzVFNzFFZ0I7RTRFODFFaEIsY3JEbjVFUztFcURvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcjhFSTtFQUNJO0VBQ0E7RUFDQSxzQnJEOXdDYztFcUQrd0NkO0FBNTRCUjtBQTg0QlE7RUFDSTtFQUNBO0VBQ0E7QUE1NEJaO0FBKzRCUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzRCWjtBQWc1QlE7RUFDSTtBQTk0Qlo7QUFpNUJRO0VBQ0k7RUFDQTtBQS80QlosQzs7OztBNUUxWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EyRDhOSjs7QTNEM05BO0VBQ0k7QTJEOE5KOztBekRwT0k7RUFESjtJQUVRO0V5RHdPTjtBQUNGOztBekRyT0E7RUFDSTtFQUNBO0VBQ0E7QXlEd09KO0F6RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V5RHlPTjtBQUNGOztBekR0T0E7RUFHWTtJQUNJO0lBQ0E7RXlEdU9kO0V6RHpPVTtJQUNJO0lBQ0E7RXlEMk9kO0V6RDdPVTtJQUNJO0lBQ0E7RXlEK09kO0V6RGpQVTtJQUNJO0lBQ0E7RXlEbVBkO0V6RHJQVTtJQUNJO0lBQ0E7RXlEdVBkO0V6RHpQVTtJQUNJO0lBQ0E7RXlEMlBkO0V6RDdQVTtJQUNJO0lBQ0E7RXlEK1BkO0V6RGpRVTtJQUNJO0lBQ0E7RXlEbVFkO0V6RHJRVTtJQUNJO0lBQ0E7RXlEdVFkO0V6RHpRVTtJQUNJO0lBQ0E7RXlEMlFkO0V6RDdRVTtJQUNJO0lBQ0E7RXlEK1FkO0V6RGpSVTtJQUNJO0lBQ0E7RXlEbVJkO0V6RDlRRTtJQUNJO0V5RGdSTjtBQUNGO0F6RDNRUTtFQURKO0lBRVE7RXlEOFFWO0FBQ0Y7O0F4RG5UQTs7RUFBQTtBQ0FBOztFQUFBO0F1RDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDN0U3MUVnQjtFNkU4MUVoQixjdERuNUVTO0VzRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFsbkJJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtBQS90RlI7QUFpdUZRO0VuRXpsR0o7RW1FMmxHUSxjdEQvbEdXO0FzRGdZdkI7QUFrdUZRO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQWh1Rlo7QUFrdUZZO0VBQ0k7QUFodUZoQjtBQW91RlE7RUFDSTtFQUFBO0VBQUE7RUFDQTtBQWx1Rlo7QS9EelhJO0UrRG1rR0E7SUFoekRRO0lBQUE7UUFBQTtZQUFBO0lBQ0E7UUFBQTtZQUFBO0VBdDVCVjtBQUNGO0FBdzVCUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUF0NUJaO0FBeTVCUTtFQUNJO0VBQ0E7QUF2NUJaO0FBeTVCWTtFQUNJO0FBdjVCaEI7QUEwNUJZO0VBQ0k7QUF4NUJoQjtBQTQ1QlE7RUFDSTtFQUNBO0FBMTVCWixDOzs7O0E3RW5iQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTREOE5KOztBNUQzTkE7RUFDSTtBNEQ4Tko7O0ExRHBPSTtFQURKO0lBRVE7RTBEd09OO0FBQ0Y7O0ExRHJPQTtFQUNJO0VBQ0E7RUFDQTtBMER3T0o7QTFEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBEeU9OO0FBQ0Y7O0ExRHRPQTtFQUdZO0lBQ0k7SUFDQTtFMER1T2Q7RTFEek9VO0lBQ0k7SUFDQTtFMEQyT2Q7RTFEN09VO0lBQ0k7SUFDQTtFMEQrT2Q7RTFEalBVO0lBQ0k7SUFDQTtFMERtUGQ7RTFEclBVO0lBQ0k7SUFDQTtFMER1UGQ7RTFEelBVO0lBQ0k7SUFDQTtFMEQyUGQ7RTFEN1BVO0lBQ0k7SUFDQTtFMEQrUGQ7RTFEalFVO0lBQ0k7SUFDQTtFMERtUWQ7RTFEclFVO0lBQ0k7SUFDQTtFMER1UWQ7RTFEelFVO0lBQ0k7SUFDQTtFMEQyUWQ7RTFEN1FVO0lBQ0k7SUFDQTtFMEQrUWQ7RTFEalJVO0lBQ0k7SUFDQTtFMERtUmQ7RTFEOVFFO0lBQ0k7RTBEZ1JOO0FBQ0Y7QTFEM1FRO0VBREo7SUFFUTtFMEQ4UVY7QUFDRjs7QXpEblRBOztFQUFBO0FDQUE7O0VBQUE7QXdENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5RTcxRWdCO0U4RTgxRWhCLGN2RG41RVM7RXVEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQ3B0SEk7RUFDSTtBRG1ZUjtBQ2pZUTtFQUNJLHlCeERVVztFd0RUWDtBRG1ZWjtBQ2hZUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN4REZXO0V3REdYO0FEa1laO0FDL1hRO0VBQ0ksY3hEUlc7RXdEU1g7RUFDQTtBRGlZWjs7QUNwWkk7RUFDSTtBRHVaUjtBQ3JaUTtFQUNJLHlCeERVVztFd0RUWDtBRHVaWjtBQ3BaUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN4REZXO0V3REdYO0FEc1paO0FDblpRO0VBQ0ksY3hEUlc7RXdEU1g7RUFDQTtBRHFaWjtBQTJ6R1E7RUFDSTtFQUNBO0VBQ0EsY3ZEN3RIVztFdUQ4dEhYO0FBenpHWjtBQTR6R1E7RUFDSTtBQTF6R1o7QUE2ekdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY3ZEenVIVztFdUQwdUhYO0VBQ0Esa0JUcnZIWTtFU3N2SFo7RUFDQTtVQUFBO0VBQ0E7RUFDQTtBQTN6R1osQzs7OztBOUU5YkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E4RDhOSjs7QTlEM05BO0VBQ0k7QThEOE5KOztBNURwT0k7RUFESjtJQUVRO0U0RHdPTjtBQUNGOztBNURyT0E7RUFDSTtFQUNBO0VBQ0E7QTREd09KO0E1RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U0RHlPTjtBQUNGOztBNUR0T0E7RUFHWTtJQUNJO0lBQ0E7RTREdU9kO0U1RHpPVTtJQUNJO0lBQ0E7RTREMk9kO0U1RDdPVTtJQUNJO0lBQ0E7RTREK09kO0U1RGpQVTtJQUNJO0lBQ0E7RTREbVBkO0U1RHJQVTtJQUNJO0lBQ0E7RTREdVBkO0U1RHpQVTtJQUNJO0lBQ0E7RTREMlBkO0U1RDdQVTtJQUNJO0lBQ0E7RTREK1BkO0U1RGpRVTtJQUNJO0lBQ0E7RTREbVFkO0U1RHJRVTtJQUNJO0lBQ0E7RTREdVFkO0U1RHpRVTtJQUNJO0lBQ0E7RTREMlFkO0U1RDdRVTtJQUNJO0lBQ0E7RTREK1FkO0U1RGpSVTtJQUNJO0lBQ0E7RTREbVJkO0U1RDlRRTtJQUNJO0U0RGdSTjtBQUNGO0E1RDNRUTtFQURKO0lBRVE7RTREOFFWO0FBQ0Y7O0EzRG5UQTs7RUFBQTtBQ0FBOztFQUFBO0EwRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDaEY3MUVnQjtFZ0Y4MUVoQixjekRuNUVTO0V5RG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJO0FBLzFHWixDOzs7O0FoRnpZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStEOE5KOztBL0QzTkE7RUFDSTtBK0Q4Tko7O0E3RHBPSTtFQURKO0lBRVE7RTZEd09OO0FBQ0Y7O0E3RHJPQTtFQUNJO0VBQ0E7RUFDQTtBNkR3T0o7QTdEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZEeU9OO0FBQ0Y7O0E3RHRPQTtFQUdZO0lBQ0k7SUFDQTtFNkR1T2Q7RTdEek9VO0lBQ0k7SUFDQTtFNkQyT2Q7RTdEN09VO0lBQ0k7SUFDQTtFNkQrT2Q7RTdEalBVO0lBQ0k7SUFDQTtFNkRtUGQ7RTdEclBVO0lBQ0k7SUFDQTtFNkR1UGQ7RTdEelBVO0lBQ0k7SUFDQTtFNkQyUGQ7RTdEN1BVO0lBQ0k7SUFDQTtFNkQrUGQ7RTdEalFVO0lBQ0k7SUFDQTtFNkRtUWQ7RTdEclFVO0lBQ0k7SUFDQTtFNkR1UWQ7RTdEelFVO0lBQ0k7SUFDQTtFNkQyUWQ7RTdEN1FVO0lBQ0k7SUFDQTtFNkQrUWQ7RTdEalJVO0lBQ0k7SUFDQTtFNkRtUmQ7RTdEOVFFO0lBQ0k7RTZEZ1JOO0FBQ0Y7QTdEM1FRO0VBREo7SUFFUTtFNkQ4UVY7QUFDRjs7QTVEblRBOztFQUFBO0FDQUE7O0VBQUE7QTJENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqRjcxRWdCO0VpRjgxRWhCLGMxRG41RVM7RTBEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWpOSTtFQUNJO0FBaG9HUjtBQWtvR1E7RXZFeC9HSjtFdUUwL0dRO0FBaG9HWjtBQW1vR1E7RUFDSTtBQWpvR1o7QUFvb0dRO0VBQ0k7QUFsb0daO0FBb29HWTtFQUNJO0FBbG9HaEI7QUFvb0dnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCMUR4aEhFO0UwRHloSEY7RUFDQTtBQWxvR3BCO0FBc29HWTtFQUVJO0FBcm9HaEI7QUF5b0dRO0VBQ0k7RUFDQSxVcEIzaUhTO0FvQm9hckIsQzs7OztBakZwYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnRThOSjs7QWhFM05BO0VBQ0k7QWdFOE5KOztBOURwT0k7RUFESjtJQUVRO0U4RHdPTjtBQUNGOztBOURyT0E7RUFDSTtFQUNBO0VBQ0E7QThEd09KO0E5RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4RHlPTjtBQUNGOztBOUR0T0E7RUFHWTtJQUNJO0lBQ0E7RThEdU9kO0U5RHpPVTtJQUNJO0lBQ0E7RThEMk9kO0U5RDdPVTtJQUNJO0lBQ0E7RThEK09kO0U5RGpQVTtJQUNJO0lBQ0E7RThEbVBkO0U5RHJQVTtJQUNJO0lBQ0E7RThEdVBkO0U5RHpQVTtJQUNJO0lBQ0E7RThEMlBkO0U5RDdQVTtJQUNJO0lBQ0E7RThEK1BkO0U5RGpRVTtJQUNJO0lBQ0E7RThEbVFkO0U5RHJRVTtJQUNJO0lBQ0E7RThEdVFkO0U5RHpRVTtJQUNJO0lBQ0E7RThEMlFkO0U5RDdRVTtJQUNJO0lBQ0E7RThEK1FkO0U5RGpSVTtJQUNJO0lBQ0E7RThEbVJkO0U5RDlRRTtJQUNJO0U4RGdSTjtBQUNGO0E5RDNRUTtFQURKO0lBRVE7RThEOFFWO0FBQ0Y7O0E3RG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E0RDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEY3MUVnQjtFa0Y4MUVoQixjM0RuNUVTO0UyRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFsS0k7RUFDSSx5QmxGN2hIZ0I7RWtGOGhIaEI7RUE0S0o7RUFDQSx5QjNEbnRIbUI7RTJEb3RIbkIsa0JibnVIb0I7RWFvdUhwQjtFQUNBLGMzRDN0SG1CO0UyRDR0SG5CO0FBMTFHSjtBQTQxR0k7RUFDSSxjM0Q5dEhlO0UyRCt0SGY7RUFDQTtFQUNBO0VBQ0E7QUExMUdSLEM7Ozs7QWxGblpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBaUU4Tko7O0FqRTNOQTtFQUNJO0FpRThOSjs7QS9EcE9JO0VBREo7SUFFUTtFK0R3T047QUFDRjs7QS9Eck9BO0VBQ0k7RUFDQTtFQUNBO0ErRHdPSjtBL0R0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFK0R5T047QUFDRjs7QS9EdE9BO0VBR1k7SUFDSTtJQUNBO0UrRHVPZDtFL0R6T1U7SUFDSTtJQUNBO0UrRDJPZDtFL0Q3T1U7SUFDSTtJQUNBO0UrRCtPZDtFL0RqUFU7SUFDSTtJQUNBO0UrRG1QZDtFL0RyUFU7SUFDSTtJQUNBO0UrRHVQZDtFL0R6UFU7SUFDSTtJQUNBO0UrRDJQZDtFL0Q3UFU7SUFDSTtJQUNBO0UrRCtQZDtFL0RqUVU7SUFDSTtJQUNBO0UrRG1RZDtFL0RyUVU7SUFDSTtJQUNBO0UrRHVRZDtFL0R6UVU7SUFDSTtJQUNBO0UrRDJRZDtFL0Q3UVU7SUFDSTtJQUNBO0UrRCtRZDtFL0RqUlU7SUFDSTtJQUNBO0UrRG1SZDtFL0Q5UUU7SUFDSTtFK0RnUk47QUFDRjtBL0QzUVE7RUFESjtJQUVRO0UrRDhRVjtBQUNGOztBOURuVEE7O0VBQUE7QUNBQTs7RUFBQTtBNkQ2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q25GNzFFZ0I7RW1GODFFaEIsYzVEbjVFUztFNERvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBeEpRO0VBQ0k7QUF6ckdaO0FBNHJHUTtFQUNJO0VBQ0E7QUExckdaLEM7Ozs7QW5GellBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBa0U4Tko7O0FsRTNOQTtFQUNJO0FrRThOSjs7QWhFcE9JO0VBREo7SUFFUTtFZ0V3T047QUFDRjs7QWhFck9BO0VBQ0k7RUFDQTtFQUNBO0FnRXdPSjtBaEV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFZ0V5T047QUFDRjs7QWhFdE9BO0VBR1k7SUFDSTtJQUNBO0VnRXVPZDtFaEV6T1U7SUFDSTtJQUNBO0VnRTJPZDtFaEU3T1U7SUFDSTtJQUNBO0VnRStPZDtFaEVqUFU7SUFDSTtJQUNBO0VnRW1QZDtFaEVyUFU7SUFDSTtJQUNBO0VnRXVQZDtFaEV6UFU7SUFDSTtJQUNBO0VnRTJQZDtFaEU3UFU7SUFDSTtJQUNBO0VnRStQZDtFaEVqUVU7SUFDSTtJQUNBO0VnRW1RZDtFaEVyUVU7SUFDSTtJQUNBO0VnRXVRZDtFaEV6UVU7SUFDSTtJQUNBO0VnRTJRZDtFaEU3UVU7SUFDSTtJQUNBO0VnRStRZDtFaEVqUlU7SUFDSTtJQUNBO0VnRW1SZDtFaEU5UUU7SUFDSTtFZ0VnUk47QUFDRjtBaEUzUVE7RUFESjtJQUVRO0VnRThRVjtBQUNGOztBL0RuVEE7O0VBQUE7QUNBQTs7RUFBQTtBOEQ2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BGNzFFZ0I7RW9GODFFaEIsYzdEbjVFUztFNkRvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBeklRO0VBQ0k7RUFDQTtFQUNBO0FBeHNHWixDOzs7O0FwRnZZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1FOE5KOztBbkUzTkE7RUFDSTtBbUU4Tko7O0FqRXBPSTtFQURKO0lBRVE7RWlFd09OO0FBQ0Y7O0FqRXJPQTtFQUNJO0VBQ0E7RUFDQTtBaUV3T0o7QWpFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlFeU9OO0FBQ0Y7O0FqRXRPQTtFQUdZO0lBQ0k7SUFDQTtFaUV1T2Q7RWpFek9VO0lBQ0k7SUFDQTtFaUUyT2Q7RWpFN09VO0lBQ0k7SUFDQTtFaUUrT2Q7RWpFalBVO0lBQ0k7SUFDQTtFaUVtUGQ7RWpFclBVO0lBQ0k7SUFDQTtFaUV1UGQ7RWpFelBVO0lBQ0k7SUFDQTtFaUUyUGQ7RWpFN1BVO0lBQ0k7SUFDQTtFaUUrUGQ7RWpFalFVO0lBQ0k7SUFDQTtFaUVtUWQ7RWpFclFVO0lBQ0k7SUFDQTtFaUV1UWQ7RWpFelFVO0lBQ0k7SUFDQTtFaUUyUWQ7RWpFN1FVO0lBQ0k7SUFDQTtFaUUrUWQ7RWpFalJVO0lBQ0k7SUFDQTtFaUVtUmQ7RWpFOVFFO0lBQ0k7RWlFZ1JOO0FBQ0Y7QWpFM1FRO0VBREo7SUFFUTtFaUU4UVY7QUFDRjs7QWhFblRBOztFQUFBO0FDQUE7O0VBQUE7QStENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyRjcxRWdCO0VxRjgxRWhCLGM5RG41RVM7RThEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTlISTtFQUNJLGM5RDlrSGU7QThEMlh2QjtBQXF0R1E7RUFDSTtBQW50R1o7QUF5MUdJO0VBQUksYzlEdHRIZTtBOERnWXZCO0FBdzFHSTtFQUVJLFc5RGh1SGM7QThEeVl0QixDOzs7O0FyRjlZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9FOE5KOztBcEUzTkE7RUFDSTtBb0U4Tko7O0FsRXBPSTtFQURKO0lBRVE7RWtFd09OO0FBQ0Y7O0FsRXJPQTtFQUNJO0VBQ0E7RUFDQTtBa0V3T0o7QWxFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtFeU9OO0FBQ0Y7O0FsRXRPQTtFQUdZO0lBQ0k7SUFDQTtFa0V1T2Q7RWxFek9VO0lBQ0k7SUFDQTtFa0UyT2Q7RWxFN09VO0lBQ0k7SUFDQTtFa0UrT2Q7RWxFalBVO0lBQ0k7SUFDQTtFa0VtUGQ7RWxFclBVO0lBQ0k7SUFDQTtFa0V1UGQ7RWxFelBVO0lBQ0k7SUFDQTtFa0UyUGQ7RWxFN1BVO0lBQ0k7SUFDQTtFa0UrUGQ7RWxFalFVO0lBQ0k7SUFDQTtFa0VtUWQ7RWxFclFVO0lBQ0k7SUFDQTtFa0V1UWQ7RWxFelFVO0lBQ0k7SUFDQTtFa0UyUWQ7RWxFN1FVO0lBQ0k7SUFDQTtFa0UrUWQ7RWxFalJVO0lBQ0k7SUFDQTtFa0VtUmQ7RWxFOVFFO0lBQ0k7RWtFZ1JOO0FBQ0Y7QWxFM1FRO0VBREo7SUFFUTtFa0U4UVY7QUFDRjs7QWpFblRBOztFQUFBO0FDQUE7O0VBQUE7QWdFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RjcxRWdCO0VzRjgxRWhCLGMvRG41RVM7RStEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWpIUTtFQUNJO0VBQ0EseUJ0Ri9rSFk7QXNGK1d4QixDOzs7O0F0RnRZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFFOE5KOztBckUzTkE7RUFDSTtBcUU4Tko7O0FuRXBPSTtFQURKO0lBRVE7RW1Fd09OO0FBQ0Y7O0FuRXJPQTtFQUNJO0VBQ0E7RUFDQTtBbUV3T0o7QW5FdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1FeU9OO0FBQ0Y7O0FuRXRPQTtFQUdZO0lBQ0k7SUFDQTtFbUV1T2Q7RW5Fek9VO0lBQ0k7SUFDQTtFbUUyT2Q7RW5FN09VO0lBQ0k7SUFDQTtFbUUrT2Q7RW5FalBVO0lBQ0k7SUFDQTtFbUVtUGQ7RW5FclBVO0lBQ0k7SUFDQTtFbUV1UGQ7RW5FelBVO0lBQ0k7SUFDQTtFbUUyUGQ7RW5FN1BVO0lBQ0k7SUFDQTtFbUUrUGQ7RW5FalFVO0lBQ0k7SUFDQTtFbUVtUWQ7RW5FclFVO0lBQ0k7SUFDQTtFbUV1UWQ7RW5FelFVO0lBQ0k7SUFDQTtFbUUyUWQ7RW5FN1FVO0lBQ0k7SUFDQTtFbUUrUWQ7RW5FalJVO0lBQ0k7SUFDQTtFbUVtUmQ7RW5FOVFFO0lBQ0k7RW1FZ1JOO0FBQ0Y7QW5FM1FRO0VBREo7SUFFUTtFbUU4UVY7QUFDRjs7QWxFblRBOztFQUFBO0FDQUE7O0VBQUE7QWlFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2RjcxRWdCO0V1RjgxRWhCLGNoRW41RVM7RWdFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTcxR1I7QUErMUdRO0VBQ0kseUJoRTF0SFc7QWdFNlh2QjtBQSsxR1k7RUFDSTtBQTcxR2hCO0FBaTJHUTtFQUNJO0FBLzFHWjtBQWsyR1E7RUFDSSxjaEUxdUhXO0VnRTJ1SFgsZXRGenVIYTtFc0YwdUhiO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFoMkdaO0FBazJHWTtFQUNJLGNoRXR2SE87QWdFc1p2QjtBQW8yR1E7RUFDSSxjaEUzdkhXO0VnRTR2SFg7QUFsMkdaO0FBcTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXaEUzd0hVO0VnRTR3SFYseUJoRXB2SGE7RWdFcXZIYjtFQUNBO0VBQ0Esa0JsQnB4SFk7RWtCcXhIWjtBQW4yR1o7QUFzMkdRO0VBQ0ksY2hFL3dIVztFZ0VneEhYO0VBQ0E7RUFDQTtBQXAyR1o7QUFzMkdZO0VBQ0k7QUFwMkdoQixDOzs7O0F2RjNiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNFOE5KOztBdEUzTkE7RUFDSTtBc0U4Tko7O0FwRXBPSTtFQURKO0lBRVE7RW9Fd09OO0FBQ0Y7O0FwRXJPQTtFQUNJO0VBQ0E7RUFDQTtBb0V3T0o7QXBFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9FeU9OO0FBQ0Y7O0FwRXRPQTtFQUdZO0lBQ0k7SUFDQTtFb0V1T2Q7RXBFek9VO0lBQ0k7SUFDQTtFb0UyT2Q7RXBFN09VO0lBQ0k7SUFDQTtFb0UrT2Q7RXBFalBVO0lBQ0k7SUFDQTtFb0VtUGQ7RXBFclBVO0lBQ0k7SUFDQTtFb0V1UGQ7RXBFelBVO0lBQ0k7SUFDQTtFb0UyUGQ7RXBFN1BVO0lBQ0k7SUFDQTtFb0UrUGQ7RXBFalFVO0lBQ0k7SUFDQTtFb0VtUWQ7RXBFclFVO0lBQ0k7SUFDQTtFb0V1UWQ7RXBFelFVO0lBQ0k7SUFDQTtFb0UyUWQ7RXBFN1FVO0lBQ0k7SUFDQTtFb0UrUWQ7RXBFalJVO0lBQ0k7SUFDQTtFb0VtUmQ7RXBFOVFFO0lBQ0k7RW9FZ1JOO0FBQ0Y7QXBFM1FRO0VBREo7SUFFUTtFb0U4UVY7QUFDRjs7QW5FblRBOztFQUFBO0FDQUE7O0VBQUE7QWtFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4RjcxRWdCO0V3RjgxRWhCLGNqRW41RVM7RWlFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXhEUTtFQUNJO0VBQ0E7QUF6eEdaLEM7Ozs7QXhGdFlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUU4Tko7O0F2RTNOQTtFQUNJO0F1RThOSjs7QXJFcE9JO0VBREo7SUFFUTtFcUV3T047QUFDRjs7QXJFck9BO0VBQ0k7RUFDQTtFQUNBO0FxRXdPSjtBckV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUV5T047QUFDRjs7QXJFdE9BO0VBR1k7SUFDSTtJQUNBO0VxRXVPZDtFckV6T1U7SUFDSTtJQUNBO0VxRTJPZDtFckU3T1U7SUFDSTtJQUNBO0VxRStPZDtFckVqUFU7SUFDSTtJQUNBO0VxRW1QZDtFckVyUFU7SUFDSTtJQUNBO0VxRXVQZDtFckV6UFU7SUFDSTtJQUNBO0VxRTJQZDtFckU3UFU7SUFDSTtJQUNBO0VxRStQZDtFckVqUVU7SUFDSTtJQUNBO0VxRW1RZDtFckVyUVU7SUFDSTtJQUNBO0VxRXVRZDtFckV6UVU7SUFDSTtJQUNBO0VxRTJRZDtFckU3UVU7SUFDSTtJQUNBO0VxRStRZDtFckVqUlU7SUFDSTtJQUNBO0VxRW1SZDtFckU5UUU7SUFDSTtFcUVnUk47QUFDRjtBckUzUVE7RUFESjtJQUVRO0VxRThRVjtBQUNGOztBcEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pGNzFFZ0I7RXlGODFFaEIsY2xFbjVFUztFa0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBOUNJO0VBQ0kseUJ6RmpwSGdCO0F5RjhXeEIsQzs7OztBekZyWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F3RThOSjs7QXhFM05BO0VBQ0k7QXdFOE5KOztBdEVwT0k7RUFESjtJQUVRO0VzRXdPTjtBQUNGOztBdEVyT0E7RUFDSTtFQUNBO0VBQ0E7QXNFd09KO0F0RXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VzRXlPTjtBQUNGOztBdEV0T0E7RUFHWTtJQUNJO0lBQ0E7RXNFdU9kO0V0RXpPVTtJQUNJO0lBQ0E7RXNFMk9kO0V0RTdPVTtJQUNJO0lBQ0E7RXNFK09kO0V0RWpQVTtJQUNJO0lBQ0E7RXNFbVBkO0V0RXJQVTtJQUNJO0lBQ0E7RXNFdVBkO0V0RXpQVTtJQUNJO0lBQ0E7RXNFMlBkO0V0RTdQVTtJQUNJO0lBQ0E7RXNFK1BkO0V0RWpRVTtJQUNJO0lBQ0E7RXNFbVFkO0V0RXJRVTtJQUNJO0lBQ0E7RXNFdVFkO0V0RXpRVTtJQUNJO0lBQ0E7RXNFMlFkO0V0RTdRVTtJQUNJO0lBQ0E7RXNFK1FkO0V0RWpSVTtJQUNJO0lBQ0E7RXNFbVJkO0V0RTlRRTtJQUNJO0VzRWdSTjtBQUNGO0F0RTNRUTtFQURKO0lBRVE7RXNFOFFWO0FBQ0Y7O0FyRW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FvRTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDMUY3MUVnQjtFMEY4MUVoQixjbkVuNUVTO0VtRW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFwQ0k7RUFDSTtFQUNBLDhCQUxZO0VBTVosZ0NBTlk7QUF2eUdwQjtBQSt5R1E7RUFDSTtFQUNBO0VBQ0EsNkJBWFE7RUFZUiwrQkFaUTtBQWp5R3BCO0E1RTdXSTtFNEVzcEhJO0lBT1E7SUFDQTtFQTV5R2Q7QUFDRjtBQTh5R1k7RUFDSTtFQUNBLHNCbkU5ckhNO0FtRWtadEI7QUE4eUdnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCbkV2c0hFO0FtRTJadEIsQzs7OztBMUZoYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5RThOSjs7QXpFM05BO0VBQ0k7QXlFOE5KOztBdkVwT0k7RUFESjtJQUVRO0V1RXdPTjtBQUNGOztBdkVyT0E7RUFDSTtFQUNBO0VBQ0E7QXVFd09KO0F2RXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1RXlPTjtBQUNGOztBdkV0T0E7RUFHWTtJQUNJO0lBQ0E7RXVFdU9kO0V2RXpPVTtJQUNJO0lBQ0E7RXVFMk9kO0V2RTdPVTtJQUNJO0lBQ0E7RXVFK09kO0V2RWpQVTtJQUNJO0lBQ0E7RXVFbVBkO0V2RXJQVTtJQUNJO0lBQ0E7RXVFdVBkO0V2RXpQVTtJQUNJO0lBQ0E7RXVFMlBkO0V2RTdQVTtJQUNJO0lBQ0E7RXVFK1BkO0V2RWpRVTtJQUNJO0lBQ0E7RXVFbVFkO0V2RXJRVTtJQUNJO0lBQ0E7RXVFdVFkO0V2RXpRVTtJQUNJO0lBQ0E7RXVFMlFkO0V2RTdRVTtJQUNJO0lBQ0E7RXVFK1FkO0V2RWpSVTtJQUNJO0lBQ0E7RXVFbVJkO0V2RTlRRTtJQUNJO0V1RWdSTjtBQUNGO0F2RTNRUTtFQURKO0lBRVE7RXVFOFFWO0FBQ0Y7O0F0RW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FxRTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0Y3MUVnQjtFMkY4MUVoQixjcEVuNUVTO0VvRW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0FBOTFHWjtBQWsyR1k7RUFHSTtBQWwyR2hCO0FBcTJHWTtFQUNJO0VBQ0EseUJwRS91SEs7RW9FZ3ZITDtFQUNBO0VBQ0EsV3BFN3VITTtBb0UwWXRCO0FBdTJHZ0I7RUFFSTtFQUNBO0VBQ0EsY3BFMXZIQztFb0UydkhEO0FBdDJHcEI7QUEwMkdZO0VoRi91SFIsK0dBRmlCO0VBRWpCLHVHQUZpQjtFZ0ZtdkhMLHNCcEU1dkhNO0VvRTZ2SE47RUFDQTtFQUNBO0VBQ0EsY3BFcndISztFb0Vzd0hMO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXoyR2hCO0FBNjJHUTtFQUNJO0VBQ0E7QUEzMkdaLEM7Ozs7QTNGdmFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMEU4Tko7O0ExRTNOQTtFQUNJO0EwRThOSjs7QXhFcE9JO0VBREo7SUFFUTtFd0V3T047QUFDRjs7QXhFck9BO0VBQ0k7RUFDQTtFQUNBO0F3RXdPSjtBeEV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFd0V5T047QUFDRjs7QXhFdE9BO0VBR1k7SUFDSTtJQUNBO0V3RXVPZDtFeEV6T1U7SUFDSTtJQUNBO0V3RTJPZDtFeEU3T1U7SUFDSTtJQUNBO0V3RStPZDtFeEVqUFU7SUFDSTtJQUNBO0V3RW1QZDtFeEVyUFU7SUFDSTtJQUNBO0V3RXVQZDtFeEV6UFU7SUFDSTtJQUNBO0V3RTJQZDtFeEU3UFU7SUFDSTtJQUNBO0V3RStQZDtFeEVqUVU7SUFDSTtJQUNBO0V3RW1RZDtFeEVyUVU7SUFDSTtJQUNBO0V3RXVRZDtFeEV6UVU7SUFDSTtJQUNBO0V3RTJRZDtFeEU3UVU7SUFDSTtJQUNBO0V3RStRZDtFeEVqUlU7SUFDSTtJQUNBO0V3RW1SZDtFeEU5UUU7SUFDSTtFd0VnUk47QUFDRjtBeEUzUVE7RUFESjtJQUVRO0V3RThRVjtBQUNGOztBdkVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBc0U2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzVGNzFFZ0I7RTRGODFFaEIsY3JFbjVFUztFcUVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtBQTUxR0o7QUE4MUdJO0VBQ0k7RUFDQTtFQUNBO0FBNTFHUjtBQSsxR0k7RUFDSTtFQUNBO0VBQ0E7QUE3MUdSLEM7Ozs7QTVGL1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMkU4Tko7O0EzRTNOQTtFQUNJO0EyRThOSjs7QXpFcE9JO0VBREo7SUFFUTtFeUV3T047QUFDRjs7QXpFck9BO0VBQ0k7RUFDQTtFQUNBO0F5RXdPSjtBekV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUV5T047QUFDRjs7QXpFdE9BO0VBR1k7SUFDSTtJQUNBO0V5RXVPZDtFekV6T1U7SUFDSTtJQUNBO0V5RTJPZDtFekU3T1U7SUFDSTtJQUNBO0V5RStPZDtFekVqUFU7SUFDSTtJQUNBO0V5RW1QZDtFekVyUFU7SUFDSTtJQUNBO0V5RXVQZDtFekV6UFU7SUFDSTtJQUNBO0V5RTJQZDtFekU3UFU7SUFDSTtJQUNBO0V5RStQZDtFekVqUVU7SUFDSTtJQUNBO0V5RW1RZDtFekVyUVU7SUFDSTtJQUNBO0V5RXVRZDtFekV6UVU7SUFDSTtJQUNBO0V5RTJRZDtFekU3UVU7SUFDSTtJQUNBO0V5RStRZDtFekVqUlU7SUFDSTtJQUNBO0V5RW1SZDtFekU5UUU7SUFDSTtFeUVnUk47QUFDRjtBekUzUVE7RUFESjtJQUVRO0V5RThRVjtBQUNGOztBeEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdGNzFFZ0I7RTZGODFFaEIsY3RFbjVFUztFc0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYUk7RUFDSTtBQTkxR1I7QUFnMkdRO0VBQ0k7RUFDQTtBQTkxR1o7QUFrMkdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWgyR1I7QUFtMkdJO0VsRm51SEEsMkNBRmlCO0VBRWpCLG1DQUZpQjtFa0Z1dUhiO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3RFL3VIZTtBc0U4WXZCO0FBbTJHUTtFQUVJLGN0RXB2SFc7QXNFa1p2QixDOzs7O0E3RjVaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRFOE5KOztBNUUzTkE7RUFDSTtBNEU4Tko7O0ExRXBPSTtFQURKO0lBRVE7RTBFd09OO0FBQ0Y7O0ExRXJPQTtFQUNJO0VBQ0E7RUFDQTtBMEV3T0o7QTFFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBFeU9OO0FBQ0Y7O0ExRXRPQTtFQUdZO0lBQ0k7SUFDQTtFMEV1T2Q7RTFFek9VO0lBQ0k7SUFDQTtFMEUyT2Q7RTFFN09VO0lBQ0k7SUFDQTtFMEUrT2Q7RTFFalBVO0lBQ0k7SUFDQTtFMEVtUGQ7RTFFclBVO0lBQ0k7SUFDQTtFMEV1UGQ7RTFFelBVO0lBQ0k7SUFDQTtFMEUyUGQ7RTFFN1BVO0lBQ0k7SUFDQTtFMEUrUGQ7RTFFalFVO0lBQ0k7SUFDQTtFMEVtUWQ7RTFFclFVO0lBQ0k7SUFDQTtFMEV1UWQ7RTFFelFVO0lBQ0k7SUFDQTtFMEUyUWQ7RTFFN1FVO0lBQ0k7SUFDQTtFMEUrUWQ7RTFFalJVO0lBQ0k7SUFDQTtFMEVtUmQ7RTFFOVFFO0lBQ0k7RTBFZ1JOO0FBQ0Y7QTFFM1FRO0VBREo7SUFFUTtFMEU4UVY7QUFDRjs7QXpFblRBOztFQUFBO0FDQUE7O0VBQUE7QXdFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5RjcxRWdCO0U4RjgxRWhCLGN2RW41RVM7RXVFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFJO0VBQ0k7QUE5MUdSO0FBZzJHUTtFQUNJO0VBQ0E7QUE5MUdaO0FBazJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFoMkdSO0FBbTJHSTtFbkZudUhBLDJDQUZpQjtFQUVqQixtQ0FGaUI7RW1GdXVIYjtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGN2RS91SGU7RXVFZ3ZIZjtBQWoyR1I7QUFtMkdRO0VBRUksY3ZFcnZIVztBdUVtWnZCLEM7Ozs7QTlGN1pBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkU4Tko7O0E3RTNOQTtFQUNJO0E2RThOSjs7QTNFcE9JO0VBREo7SUFFUTtFMkV3T047QUFDRjs7QTNFck9BO0VBQ0k7RUFDQTtFQUNBO0EyRXdPSjtBM0V0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkV5T047QUFDRjs7QTNFdE9BO0VBR1k7SUFDSTtJQUNBO0UyRXVPZDtFM0V6T1U7SUFDSTtJQUNBO0UyRTJPZDtFM0U3T1U7SUFDSTtJQUNBO0UyRStPZDtFM0VqUFU7SUFDSTtJQUNBO0UyRW1QZDtFM0VyUFU7SUFDSTtJQUNBO0UyRXVQZDtFM0V6UFU7SUFDSTtJQUNBO0UyRTJQZDtFM0U3UFU7SUFDSTtJQUNBO0UyRStQZDtFM0VqUVU7SUFDSTtJQUNBO0UyRW1RZDtFM0VyUVU7SUFDSTtJQUNBO0UyRXVRZDtFM0V6UVU7SUFDSTtJQUNBO0UyRTJRZDtFM0U3UVU7SUFDSTtJQUNBO0UyRStRZDtFM0VqUlU7SUFDSTtJQUNBO0UyRW1SZDtFM0U5UUU7SUFDSTtFMkVnUk47QUFDRjtBM0UzUVE7RUFESjtJQUVRO0UyRThRVjtBQUNGOztBMUVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9GNzFFZ0I7RStGODFFaEIsY3hFbjVFUztFd0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtFQUNBO0FBNTFHSjtBQTgxR0k7RUFDSTtFQUNBO0VBQ0EsY3hFNXRIZTtFd0U2dEhmO0VBQ0E7RUFDQTtBQTUxR1I7QUE4MUdRO0VBQ0ksY3hFbHVIVztBd0VzWXZCO0FBZzJHSTtFQUNJO0VBQ0E7QUE5MUdSO0FBaTJHSTtFQUNJO0VBQ0E7QUEvMUdSLEM7Ozs7QS9GelpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBOEU4Tko7O0E5RTNOQTtFQUNJO0E4RThOSjs7QTVFcE9JO0VBREo7SUFFUTtFNEV3T047QUFDRjs7QTVFck9BO0VBQ0k7RUFDQTtFQUNBO0E0RXdPSjtBNUV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNEV5T047QUFDRjs7QTVFdE9BO0VBR1k7SUFDSTtJQUNBO0U0RXVPZDtFNUV6T1U7SUFDSTtJQUNBO0U0RTJPZDtFNUU3T1U7SUFDSTtJQUNBO0U0RStPZDtFNUVqUFU7SUFDSTtJQUNBO0U0RW1QZDtFNUVyUFU7SUFDSTtJQUNBO0U0RXVQZDtFNUV6UFU7SUFDSTtJQUNBO0U0RTJQZDtFNUU3UFU7SUFDSTtJQUNBO0U0RStQZDtFNUVqUVU7SUFDSTtJQUNBO0U0RW1RZDtFNUVyUVU7SUFDSTtJQUNBO0U0RXVRZDtFNUV6UVU7SUFDSTtJQUNBO0U0RTJRZDtFNUU3UVU7SUFDSTtJQUNBO0U0RStRZDtFNUVqUlU7SUFDSTtJQUNBO0U0RW1SZDtFNUU5UUU7SUFDSTtFNEVnUk47QUFDRjtBNUUzUVE7RUFESjtJQUVRO0U0RThRVjtBQUNGOztBM0VuVEE7O0VBQUE7QUNBQTs7RUFBQTtBMEU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2hHNzFFZ0I7RWdHODFFaEIsY3pFbjVFUztFeUVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTkxR1I7QUFpMkdJO0VBQ0k7RUFDQTtBQS8xR1I7QUFrMkdJO0VBQ0k7QUFoMkdSLEM7Ozs7QWhHL1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBK0U4Tko7O0EvRTNOQTtFQUNJO0ErRThOSjs7QTdFcE9JO0VBREo7SUFFUTtFNkV3T047QUFDRjs7QTdFck9BO0VBQ0k7RUFDQTtFQUNBO0E2RXdPSjtBN0V0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNkV5T047QUFDRjs7QTdFdE9BO0VBR1k7SUFDSTtJQUNBO0U2RXVPZDtFN0V6T1U7SUFDSTtJQUNBO0U2RTJPZDtFN0U3T1U7SUFDSTtJQUNBO0U2RStPZDtFN0VqUFU7SUFDSTtJQUNBO0U2RW1QZDtFN0VyUFU7SUFDSTtJQUNBO0U2RXVQZDtFN0V6UFU7SUFDSTtJQUNBO0U2RTJQZDtFN0U3UFU7SUFDSTtJQUNBO0U2RStQZDtFN0VqUVU7SUFDSTtJQUNBO0U2RW1RZDtFN0VyUVU7SUFDSTtJQUNBO0U2RXVRZDtFN0V6UVU7SUFDSTtJQUNBO0U2RTJRZDtFN0U3UVU7SUFDSTtJQUNBO0U2RStRZDtFN0VqUlU7SUFDSTtJQUNBO0U2RW1SZDtFN0U5UUU7SUFDSTtFNkVnUk47QUFDRjtBN0UzUVE7RUFESjtJQUVRO0U2RThRVjtBQUNGOztBNUVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBMkU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pHNzFFZ0I7RWlHODFFaEIsYzFFbjVFUztFMEVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYUk7RUFDRTtBQTkxR04sQzs7OztBakdyWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnRjhOSjs7QWhGM05BO0VBQ0k7QWdGOE5KOztBOUVwT0k7RUFESjtJQUVRO0U4RXdPTjtBQUNGOztBOUVyT0E7RUFDSTtFQUNBO0VBQ0E7QThFd09KO0E5RXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4RXlPTjtBQUNGOztBOUV0T0E7RUFHWTtJQUNJO0lBQ0E7RThFdU9kO0U5RXpPVTtJQUNJO0lBQ0E7RThFMk9kO0U5RTdPVTtJQUNJO0lBQ0E7RThFK09kO0U5RWpQVTtJQUNJO0lBQ0E7RThFbVBkO0U5RXJQVTtJQUNJO0lBQ0E7RThFdVBkO0U5RXpQVTtJQUNJO0lBQ0E7RThFMlBkO0U5RTdQVTtJQUNJO0lBQ0E7RThFK1BkO0U5RWpRVTtJQUNJO0lBQ0E7RThFbVFkO0U5RXJRVTtJQUNJO0lBQ0E7RThFdVFkO0U5RXpRVTtJQUNJO0lBQ0E7RThFMlFkO0U5RTdRVTtJQUNJO0lBQ0E7RThFK1FkO0U5RWpSVTtJQUNJO0lBQ0E7RThFbVJkO0U5RTlRRTtJQUNJO0U4RWdSTjtBQUNGO0E5RTNRUTtFQURKO0lBRVE7RThFOFFWO0FBQ0Y7O0E3RW5UQTs7RUFBQTtBQ0FBOztFQUFBO0E0RTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEc3MUVnQjtFa0c4MUVoQixjM0VuNUVTO0UyRW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0FBNTFHSjtBQTgxR0k7RUFDSSx5QjNFcnRIZTtFMkVzdEhmO0FBNTFHUjtBQSsxR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjM0VqdUhlO0UyRWt1SGY7QUE3MUdSO0FBZzJHSTtFQUNJO0VBQ0E7RUFDQSxjM0V6dUhlO0EyRTJZdkI7QUFpMkdJO0VBQ0k7QUEvMUdSO0FBazJHSTtFQUNJLGMzRWp2SGU7RTJFa3ZIZjtFQUNBO0FBaDJHUjtBQW0yR0k7RUFDSTtBQWoyR1I7QUFvMkdJO0VBQ0k7RUFDQTtBQWwyR1I7QUFxMkdJO0VBQ0k7RUFDQTtBQW4yR1I7QUFzMkdJO0VBQ0k7QUFwMkdSO0FBdTJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGMzRTV3SGU7RTJFNndIZjtFQUNBLGtCN0J4eEhnQjtFNkJ5eEhoQjtFQUNBO1VBQUE7RUFDQTtFQUNBO0FBcjJHUixDOzs7O0FsR3ZiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlGOE5KOztBakYzTkE7RUFDSTtBaUY4Tko7O0EvRXBPSTtFQURKO0lBRVE7RStFd09OO0FBQ0Y7O0EvRXJPQTtFQUNJO0VBQ0E7RUFDQTtBK0V3T0o7QS9FdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStFeU9OO0FBQ0Y7O0EvRXRPQTtFQUdZO0lBQ0k7SUFDQTtFK0V1T2Q7RS9Fek9VO0lBQ0k7SUFDQTtFK0UyT2Q7RS9FN09VO0lBQ0k7SUFDQTtFK0UrT2Q7RS9FalBVO0lBQ0k7SUFDQTtFK0VtUGQ7RS9FclBVO0lBQ0k7SUFDQTtFK0V1UGQ7RS9FelBVO0lBQ0k7SUFDQTtFK0UyUGQ7RS9FN1BVO0lBQ0k7SUFDQTtFK0UrUGQ7RS9FalFVO0lBQ0k7SUFDQTtFK0VtUWQ7RS9FclFVO0lBQ0k7SUFDQTtFK0V1UWQ7RS9FelFVO0lBQ0k7SUFDQTtFK0UyUWQ7RS9FN1FVO0lBQ0k7SUFDQTtFK0UrUWQ7RS9FalJVO0lBQ0k7SUFDQTtFK0VtUmQ7RS9FOVFFO0lBQ0k7RStFZ1JOO0FBQ0Y7QS9FM1FRO0VBREo7SUFFUTtFK0U4UVY7QUFDRjs7QTlFblRBOztFQUFBO0FDQUE7O0VBQUE7QTZFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuRzcxRWdCO0VtRzgxRWhCLGM1RW41RVM7RTRFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0k7QUE1MUdKO0FBODFHSTtFQUNJO0FBNTFHUixDOzs7O0FuR3hZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWtGOE5KOztBbEYzTkE7RUFDSTtBa0Y4Tko7O0FoRnBPSTtFQURKO0lBRVE7RWdGd09OO0FBQ0Y7O0FoRnJPQTtFQUNJO0VBQ0E7RUFDQTtBZ0Z3T0o7QWhGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWdGeU9OO0FBQ0Y7O0FoRnRPQTtFQUdZO0lBQ0k7SUFDQTtFZ0Z1T2Q7RWhGek9VO0lBQ0k7SUFDQTtFZ0YyT2Q7RWhGN09VO0lBQ0k7SUFDQTtFZ0YrT2Q7RWhGalBVO0lBQ0k7SUFDQTtFZ0ZtUGQ7RWhGclBVO0lBQ0k7SUFDQTtFZ0Z1UGQ7RWhGelBVO0lBQ0k7SUFDQTtFZ0YyUGQ7RWhGN1BVO0lBQ0k7SUFDQTtFZ0YrUGQ7RWhGalFVO0lBQ0k7SUFDQTtFZ0ZtUWQ7RWhGclFVO0lBQ0k7SUFDQTtFZ0Z1UWQ7RWhGelFVO0lBQ0k7SUFDQTtFZ0YyUWQ7RWhGN1FVO0lBQ0k7SUFDQTtFZ0YrUWQ7RWhGalJVO0lBQ0k7SUFDQTtFZ0ZtUmQ7RWhGOVFFO0lBQ0k7RWdGZ1JOO0FBQ0Y7QWhGM1FRO0VBREo7SUFFUTtFZ0Y4UVY7QUFDRjs7QS9FblRBOztFQUFBO0FDQUE7O0VBQUE7QThFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NwRzcxRWdCO0VvRzgxRWhCLGM3RW41RVM7RTZFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0k7RUFDQTtBQTUxR0o7QXRGdFdJO0VzRmdzSEo7SUFJUTtFQTExR047QUFDRixDOzs7O0FwRzNZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1GOE5KOztBbkYzTkE7RUFDSTtBbUY4Tko7O0FqRnBPSTtFQURKO0lBRVE7RWlGd09OO0FBQ0Y7O0FqRnJPQTtFQUNJO0VBQ0E7RUFDQTtBaUZ3T0o7QWpGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlGeU9OO0FBQ0Y7O0FqRnRPQTtFQUdZO0lBQ0k7SUFDQTtFaUZ1T2Q7RWpGek9VO0lBQ0k7SUFDQTtFaUYyT2Q7RWpGN09VO0lBQ0k7SUFDQTtFaUYrT2Q7RWpGalBVO0lBQ0k7SUFDQTtFaUZtUGQ7RWpGclBVO0lBQ0k7SUFDQTtFaUZ1UGQ7RWpGelBVO0lBQ0k7SUFDQTtFaUYyUGQ7RWpGN1BVO0lBQ0k7SUFDQTtFaUYrUGQ7RWpGalFVO0lBQ0k7SUFDQTtFaUZtUWQ7RWpGclFVO0lBQ0k7SUFDQTtFaUZ1UWQ7RWpGelFVO0lBQ0k7SUFDQTtFaUYyUWQ7RWpGN1FVO0lBQ0k7SUFDQTtFaUYrUWQ7RWpGalJVO0lBQ0k7SUFDQTtFaUZtUmQ7RWpGOVFFO0lBQ0k7RWlGZ1JOO0FBQ0Y7QWpGM1FRO0VBREo7SUFFUTtFaUY4UVY7QUFDRjs7QWhGblRBOztFQUFBO0FDQUE7O0VBQUE7QStFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyRzcxRWdCO0VxRzgxRWhCLGM5RW41RVM7RThFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJLGM5RS90SFc7RThFZ3VIWDtFQUNBO0VBQ0E7QUEvMUdaO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFrMkdZO0VBQ0k7RUFDQTtBQWgyR2hCO0FBbTJHWTtFQUNJO0FBajJHaEI7QUFvMkdZO0VBQ0k7RUFDQTtBQWwyR2hCO0FBdTJHUTtFQUNJO0FBcjJHWjtBQXcyR1E7RUFDSTtFQUNBO0FBdDJHWjtBQXkyR1E7RUFDSTtFQUNBO0FBdjJHWjtBQTAyR1E7RUFDSTtFQUNBO0VBQ0EsWXhDanhIUztBd0N5YXJCO0FBMDJHWTtFekZseEhSO0VBQ0E7RUFDQTtFeUZteEhZO1VBQUE7QUF2MkdoQjtBQTAyR1k7RXpGN3dIUjtFQUNBO0VBQ0E7RUREQSx5Q0FGaUI7RUFFakIsaUNBRmlCO0UwRmt4SEwsZ0I5RTN4SE07RThFNHhITjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtBQXYyR2hCO0FBeTJHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7QUF2MkdwQixDOzs7O0FyRy9jQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9GOE5KOztBcEYzTkE7RUFDSTtBb0Y4Tko7O0FsRnBPSTtFQURKO0lBRVE7RWtGd09OO0FBQ0Y7O0FsRnJPQTtFQUNJO0VBQ0E7RUFDQTtBa0Z3T0o7QWxGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtGeU9OO0FBQ0Y7O0FsRnRPQTtFQUdZO0lBQ0k7SUFDQTtFa0Z1T2Q7RWxGek9VO0lBQ0k7SUFDQTtFa0YyT2Q7RWxGN09VO0lBQ0k7SUFDQTtFa0YrT2Q7RWxGalBVO0lBQ0k7SUFDQTtFa0ZtUGQ7RWxGclBVO0lBQ0k7SUFDQTtFa0Z1UGQ7RWxGelBVO0lBQ0k7SUFDQTtFa0YyUGQ7RWxGN1BVO0lBQ0k7SUFDQTtFa0YrUGQ7RWxGalFVO0lBQ0k7SUFDQTtFa0ZtUWQ7RWxGclFVO0lBQ0k7SUFDQTtFa0Z1UWQ7RWxGelFVO0lBQ0k7SUFDQTtFa0YyUWQ7RWxGN1FVO0lBQ0k7SUFDQTtFa0YrUWQ7RWxGalJVO0lBQ0k7SUFDQTtFa0ZtUmQ7RWxGOVFFO0lBQ0k7RWtGZ1JOO0FBQ0Y7QWxGM1FRO0VBREo7SUFFUTtFa0Y4UVY7QUFDRjs7QWpGblRBOztFQUFBO0FDQUE7O0VBQUE7QWdGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RzcxRWdCO0VzRzgxRWhCLGMvRW41RVM7RStFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0k7QUE1MUdKO0FBODFHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1MUdSO0FBKzFHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdSO0FBZzJHSTtFQUNJO0FBOTFHUixDOzs7O0F0R3paQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFGOE5KOztBckYzTkE7RUFDSTtBcUY4Tko7O0FuRnBPSTtFQURKO0lBRVE7RW1Gd09OO0FBQ0Y7O0FuRnJPQTtFQUNJO0VBQ0E7RUFDQTtBbUZ3T0o7QW5GdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1GeU9OO0FBQ0Y7O0FuRnRPQTtFQUdZO0lBQ0k7SUFDQTtFbUZ1T2Q7RW5Gek9VO0lBQ0k7SUFDQTtFbUYyT2Q7RW5GN09VO0lBQ0k7SUFDQTtFbUYrT2Q7RW5GalBVO0lBQ0k7SUFDQTtFbUZtUGQ7RW5GclBVO0lBQ0k7SUFDQTtFbUZ1UGQ7RW5GelBVO0lBQ0k7SUFDQTtFbUYyUGQ7RW5GN1BVO0lBQ0k7SUFDQTtFbUYrUGQ7RW5GalFVO0lBQ0k7SUFDQTtFbUZtUWQ7RW5GclFVO0lBQ0k7SUFDQTtFbUZ1UWQ7RW5GelFVO0lBQ0k7SUFDQTtFbUYyUWQ7RW5GN1FVO0lBQ0k7SUFDQTtFbUYrUWQ7RW5GalJVO0lBQ0k7SUFDQTtFbUZtUmQ7RW5GOVFFO0lBQ0k7RW1GZ1JOO0FBQ0Y7QW5GM1FRO0VBREo7SUFFUTtFbUY4UVY7QUFDRjs7QWxGblRBOztFQUFBO0FDQUE7O0VBQUE7QWlGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2RzcxRWdCO0V1RzgxRWhCLGNoRm41RVM7RWdGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0ksY2hGdnRIbUI7RWdGd3RIbkI7RUFDQTtBQTUxR0osQzs7OztBdkd2WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FzRjhOSjs7QXRGM05BO0VBQ0k7QXNGOE5KOztBcEZwT0k7RUFESjtJQUVRO0VvRndPTjtBQUNGOztBcEZyT0E7RUFDSTtFQUNBO0VBQ0E7QW9Gd09KO0FwRnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VvRnlPTjtBQUNGOztBcEZ0T0E7RUFHWTtJQUNJO0lBQ0E7RW9GdU9kO0VwRnpPVTtJQUNJO0lBQ0E7RW9GMk9kO0VwRjdPVTtJQUNJO0lBQ0E7RW9GK09kO0VwRmpQVTtJQUNJO0lBQ0E7RW9GbVBkO0VwRnJQVTtJQUNJO0lBQ0E7RW9GdVBkO0VwRnpQVTtJQUNJO0lBQ0E7RW9GMlBkO0VwRjdQVTtJQUNJO0lBQ0E7RW9GK1BkO0VwRmpRVTtJQUNJO0lBQ0E7RW9GbVFkO0VwRnJRVTtJQUNJO0lBQ0E7RW9GdVFkO0VwRnpRVTtJQUNJO0lBQ0E7RW9GMlFkO0VwRjdRVTtJQUNJO0lBQ0E7RW9GK1FkO0VwRmpSVTtJQUNJO0lBQ0E7RW9GbVJkO0VwRjlRRTtJQUNJO0VvRmdSTjtBQUNGO0FwRjNRUTtFQURKO0lBRVE7RW9GOFFWO0FBQ0Y7O0FuRm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FrRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDeEc3MUVnQjtFd0c4MUVoQixjakZuNUVTO0VpRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUE0QkE7RUFDSTtFQUNBO0VBQ0E7QUE3MkdKOztBQWczR0E7RUFDSTtFQUNBO0VBQ0E7QUE3MkdKO0FBKzJHSTtFQUNJO0FBNzJHUjs7QUFrMUdRO0VBQ0k7QUEvMEdaOztBQXExR0k7O0VBRUksY2pGbHRIYztFaUZtdEhkO0VBQ0E7QUFsMUdSLEM7Ozs7QXhHM1pBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUY4Tko7O0F2RjNOQTtFQUNJO0F1RjhOSjs7QXJGcE9JO0VBREo7SUFFUTtFcUZ3T047QUFDRjs7QXJGck9BO0VBQ0k7RUFDQTtFQUNBO0FxRndPSjtBckZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUZ5T047QUFDRjs7QXJGdE9BO0VBR1k7SUFDSTtJQUNBO0VxRnVPZDtFckZ6T1U7SUFDSTtJQUNBO0VxRjJPZDtFckY3T1U7SUFDSTtJQUNBO0VxRitPZDtFckZqUFU7SUFDSTtJQUNBO0VxRm1QZDtFckZyUFU7SUFDSTtJQUNBO0VxRnVQZDtFckZ6UFU7SUFDSTtJQUNBO0VxRjJQZDtFckY3UFU7SUFDSTtJQUNBO0VxRitQZDtFckZqUVU7SUFDSTtJQUNBO0VxRm1RZDtFckZyUVU7SUFDSTtJQUNBO0VxRnVRZDtFckZ6UVU7SUFDSTtJQUNBO0VxRjJRZDtFckY3UVU7SUFDSTtJQUNBO0VxRitRZDtFckZqUlU7SUFDSTtJQUNBO0VxRm1SZDtFckY5UUU7SUFDSTtFcUZnUk47QUFDRjtBckYzUVE7RUFESjtJQUVRO0VxRjhRVjtBQUNGOztBcEZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUY2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pHNzFFZ0I7RXlHODFFaEIsY2xGbjVFUztFa0ZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7QUFLUTtFQUNJO0FBaDJHWjtBQW8yR0k7RUFDSTtFQUNBO0VBQ0E7QUFsMkdSO0FBcTJHSTtFQUNJO0VBQ0E7QUFuMkdSO0EzRi9XSTtFMkZndEhBO0lBS1E7SUFDQTtFQWwyR1Y7QUFDRjtBQXEyR0k7RUFDSTtFQUNBO0VBQ0E7QUFuMkdSO0EzRjFYSTtFMkYwdEhBO0lBTVE7SUFDQTtFQWwyR1Y7QUFDRjtBQXEyR0k7RUFDSTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQW4yR1I7QUFxMkdRO0VBQ0k7QUFuMkdaO0FBczJHUTtFQUNJO0FBcDJHWjtBQXcyR0k7RUFDSSxjbEZ4d0hlO0FrRmthdkI7QUF5MkdJO0U5RnR3SEEsd0ZBRmlCO0VBRWpCLGdGQUZpQjtFQUVqQix3RUFGaUI7RUFFakIsOEdBRmlCO0E4RmthckI7QUF5MkdRO0VBQ0ksY2xGL3dIVztBa0Z3YXZCO0FBczJHUTtFQUNJLGNsRi93SFc7QWtGd2F2QjtBQXMyR1E7RUFDSSxjbEYvd0hXO0FrRndhdkI7QUFzMkdRO0VBQ0ksY2xGL3dIVztBa0Z3YXZCO0FBczJHUTtFQUNJLGNsRi93SFc7QWtGd2F2QjtBQXkyR1E7RUFDSSxxQmxGN3hIUztFa0Y4eEhUO1VBQUE7QUF2MkdaO0FBNjJHWTtFQUNJLHFCbEZyeUhLO0VrRnN5SEw7VUFBQTtBQTMyR2hCO0FBKzJHUTtFOUYxeEhKLHdGQUZpQjtFQUVqQixnRkFGaUI7RUFFakIsd0VBRmlCO0VBRWpCLDhHQUZpQjtFOEY4eEhULGtCcEM1eUhZO0VvQzZ5SFoseUJsRjl4SFc7RWtGK3hIWCxjbEZueUhXO0FrRnNidkI7QUFtM0dRO0VBQ0ksY2xGMXlIVztBa0Z5YnZCO0FBczNHWTtFQUNJLHNCbEZ0ekhNO0VrRnV6SE47VUFBQTtBQXAzR2hCO0FBdTNHWTtFQUNJLGNsRnJ6SE87RWtGc3pIUDtBQXIzR2hCLEM7Ozs7QXpHNWNBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBd0Y4Tko7O0F4RjNOQTtFQUNJO0F3RjhOSjs7QXRGcE9JO0VBREo7SUFFUTtFc0Z3T047QUFDRjs7QXRGck9BO0VBQ0k7RUFDQTtFQUNBO0FzRndPSjtBdEZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFc0Z5T047QUFDRjs7QXRGdE9BO0VBR1k7SUFDSTtJQUNBO0VzRnVPZDtFdEZ6T1U7SUFDSTtJQUNBO0VzRjJPZDtFdEY3T1U7SUFDSTtJQUNBO0VzRitPZDtFdEZqUFU7SUFDSTtJQUNBO0VzRm1QZDtFdEZyUFU7SUFDSTtJQUNBO0VzRnVQZDtFdEZ6UFU7SUFDSTtJQUNBO0VzRjJQZDtFdEY3UFU7SUFDSTtJQUNBO0VzRitQZDtFdEZqUVU7SUFDSTtJQUNBO0VzRm1RZDtFdEZyUVU7SUFDSTtJQUNBO0VzRnVRZDtFdEZ6UVU7SUFDSTtJQUNBO0VzRjJRZDtFdEY3UVU7SUFDSTtJQUNBO0VzRitRZDtFdEZqUlU7SUFDSTtJQUNBO0VzRm1SZDtFdEY5UUU7SUFDSTtFc0ZnUk47QUFDRjtBdEYzUVE7RUFESjtJQUVRO0VzRjhRVjtBQUNGOztBckZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBb0Y2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzFHNzFFZ0I7RTBHODFFaEIsY25GbjVFUztFbUZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7QUFJSTtFQUNJO0FBLzFHUjtBQWsyR0k7RUFDSTtFQUNBO0FBaDJHUjtBQXEyR2dCOztFQUNJO0FBbDJHcEI7QUEwMkdnQjs7RUFDSSw4QnJDenZISTtFcUMwdkhKLCtCckMxdkhJO0FxQ21aeEI7QUE2MkdJO0VBQ0k7RUFDQTtFQUNBO0FBMzJHUjtBQTgyR0k7RUFDSTtBQTUyR1I7QUFpM0dROztFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0FBOTJHWjtBQWkzR1E7O0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBOTJHWjtBQWkzR1E7O0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUE5MkdaO0FBbzNHZ0I7Ozs7RUFDSTtVQUFBO0FBLzJHcEI7QUFxM0dJO0VBQ0k7QUFuM0dSLEM7Ozs7QTFHMWJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBeUY4Tko7O0F6RjNOQTtFQUNJO0F5RjhOSjs7QXZGcE9JO0VBREo7SUFFUTtFdUZ3T047QUFDRjs7QXZGck9BO0VBQ0k7RUFDQTtFQUNBO0F1RndPSjtBdkZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFdUZ5T047QUFDRjs7QXZGdE9BO0VBR1k7SUFDSTtJQUNBO0V1RnVPZDtFdkZ6T1U7SUFDSTtJQUNBO0V1RjJPZDtFdkY3T1U7SUFDSTtJQUNBO0V1RitPZDtFdkZqUFU7SUFDSTtJQUNBO0V1Rm1QZDtFdkZyUFU7SUFDSTtJQUNBO0V1RnVQZDtFdkZ6UFU7SUFDSTtJQUNBO0V1RjJQZDtFdkY3UFU7SUFDSTtJQUNBO0V1RitQZDtFdkZqUVU7SUFDSTtJQUNBO0V1Rm1RZDtFdkZyUVU7SUFDSTtJQUNBO0V1RnVRZDtFdkZ6UVU7SUFDSTtJQUNBO0V1RjJRZDtFdkY3UVU7SUFDSTtJQUNBO0V1RitRZDtFdkZqUlU7SUFDSTtJQUNBO0V1Rm1SZDtFdkY5UUU7SUFDSTtFdUZnUk47QUFDRjtBdkYzUVE7RUFESjtJQUVRO0V1RjhRVjtBQUNGOztBdEZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBcUY2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzNHNzFFZ0I7RTJHODFFaEIsY3BGbjVFUztFb0ZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSSxrQnRDanVIb0I7RXNDa3VIcEI7RUFDQTtBQTUxR0o7QUE4MUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE1MUdSO0FBODFHUTtFQUNJO0VBQ0E7RUFDQTtBQTUxR1osQzs7OztBM0dsWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EwRjhOSjs7QTFGM05BO0VBQ0k7QTBGOE5KOztBeEZwT0k7RUFESjtJQUVRO0V3RndPTjtBQUNGOztBeEZyT0E7RUFDSTtFQUNBO0VBQ0E7QXdGd09KO0F4RnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V3RnlPTjtBQUNGOztBeEZ0T0E7RUFHWTtJQUNJO0lBQ0E7RXdGdU9kO0V4RnpPVTtJQUNJO0lBQ0E7RXdGMk9kO0V4RjdPVTtJQUNJO0lBQ0E7RXdGK09kO0V4RmpQVTtJQUNJO0lBQ0E7RXdGbVBkO0V4RnJQVTtJQUNJO0lBQ0E7RXdGdVBkO0V4RnpQVTtJQUNJO0lBQ0E7RXdGMlBkO0V4RjdQVTtJQUNJO0lBQ0E7RXdGK1BkO0V4RmpRVTtJQUNJO0lBQ0E7RXdGbVFkO0V4RnJRVTtJQUNJO0lBQ0E7RXdGdVFkO0V4RnpRVTtJQUNJO0lBQ0E7RXdGMlFkO0V4RjdRVTtJQUNJO0lBQ0E7RXdGK1FkO0V4RmpSVTtJQUNJO0lBQ0E7RXdGbVJkO0V4RjlRRTtJQUNJO0V3RmdSTjtBQUNGO0F4RjNRUTtFQURKO0lBRVE7RXdGOFFWO0FBQ0Y7O0F2Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FzRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDNUc3MUVnQjtFNEc4MUVoQixjckZuNUVTO0VxRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFDQTtFQUNBO0FBOTFHWjtBQW0yR29COztFQUNJO0FBaDJHeEI7QUF3MkdvQjs7RUFDSSw4QnZDMXZIQTtFdUMydkhBLCtCdkMzdkhBO0F1Q3NaeEI7QUEyMkdRO0VBQ0k7QUF6MkdaO0FBNDJHUTtFQUNJO0FBMTJHWjtBQTQyR1k7RUFDSSxjckZwdkhRO0FxRjBZeEIsQzs7OztBNUcvWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EyRjhOSjs7QTNGM05BO0VBQ0k7QTJGOE5KOztBekZwT0k7RUFESjtJQUVRO0V5RndPTjtBQUNGOztBekZyT0E7RUFDSTtFQUNBO0VBQ0E7QXlGd09KO0F6RnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V5RnlPTjtBQUNGOztBekZ0T0E7RUFHWTtJQUNJO0lBQ0E7RXlGdU9kO0V6RnpPVTtJQUNJO0lBQ0E7RXlGMk9kO0V6RjdPVTtJQUNJO0lBQ0E7RXlGK09kO0V6RmpQVTtJQUNJO0lBQ0E7RXlGbVBkO0V6RnJQVTtJQUNJO0lBQ0E7RXlGdVBkO0V6RnpQVTtJQUNJO0lBQ0E7RXlGMlBkO0V6RjdQVTtJQUNJO0lBQ0E7RXlGK1BkO0V6RmpRVTtJQUNJO0lBQ0E7RXlGbVFkO0V6RnJRVTtJQUNJO0lBQ0E7RXlGdVFkO0V6RnpRVTtJQUNJO0lBQ0E7RXlGMlFkO0V6RjdRVTtJQUNJO0lBQ0E7RXlGK1FkO0V6RmpSVTtJQUNJO0lBQ0E7RXlGbVJkO0V6RjlRRTtJQUNJO0V5RmdSTjtBQUNGO0F6RjNRUTtFQURKO0lBRVE7RXlGOFFWO0FBQ0Y7O0F4Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0F1RjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDN0c3MUVnQjtFNkc4MUVoQixjdEZuNUVTO0VzRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdROztFQUVJO0FBOTFHWjtBQWcyR1k7O0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7QUE3MUdoQjtBQWcyR1k7O0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNzFHaEI7QUFnMkdZOztFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7RUFDQTtBQTcxR2hCO0FBbTJHb0I7Ozs7RUFDSTtVQUFBO0FBOTFHeEI7QUFvMkdRO0VBQ0k7RUFDQTtBQWwyR1o7QUFvMkdZO0VBQ0kseUJ0RnB3SE87RXNGcXdIUDtFQUNBLHFCdEZsd0hRO0FzRmdheEI7QUFzMkdRO0VBQ0k7RUFDQTtBQXAyR1o7QUF1MkdRO0VBQ0k7RUFDQTtFQUNBO0FBcjJHWjtBQXUyR1k7RUFDSTtBQXIyR2hCLEM7Ozs7QTdHL2JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNEY4Tko7O0E1RjNOQTtFQUNJO0E0RjhOSjs7QTFGcE9JO0VBREo7SUFFUTtFMEZ3T047QUFDRjs7QTFGck9BO0VBQ0k7RUFDQTtFQUNBO0EwRndPSjtBMUZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMEZ5T047QUFDRjs7QTFGdE9BO0VBR1k7SUFDSTtJQUNBO0UwRnVPZDtFMUZ6T1U7SUFDSTtJQUNBO0UwRjJPZDtFMUY3T1U7SUFDSTtJQUNBO0UwRitPZDtFMUZqUFU7SUFDSTtJQUNBO0UwRm1QZDtFMUZyUFU7SUFDSTtJQUNBO0UwRnVQZDtFMUZ6UFU7SUFDSTtJQUNBO0UwRjJQZDtFMUY3UFU7SUFDSTtJQUNBO0UwRitQZDtFMUZqUVU7SUFDSTtJQUNBO0UwRm1RZDtFMUZyUVU7SUFDSTtJQUNBO0UwRnVRZDtFMUZ6UVU7SUFDSTtJQUNBO0UwRjJRZDtFMUY3UVU7SUFDSTtJQUNBO0UwRitRZDtFMUZqUlU7SUFDSTtJQUNBO0UwRm1SZDtFMUY5UUU7SUFDSTtFMEZnUk47QUFDRjtBMUYzUVE7RUFESjtJQUVRO0UwRjhRVjtBQUNGOztBekZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBd0Y2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzlHNzFFZ0I7RThHODFFaEIsY3ZGbjVFUztFdUZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUNBO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjdkY5dEhXO0F1RmlZdkI7QUFnMkdRO0VBQ0k7RUFDQSxjdkZudUhXO0F1RnFZdkI7QUFnMkdZO0VBQ0k7RUFDQTtFQUNBO0FBOTFHaEI7QUFrMkdRO0VBQ0kseUJ2Rnp1SFc7RXVGMHVIWCxrQnpDenZIWTtBeUN5WnhCO0FBbTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN2RnJ2SFc7QXVGb1p2QjtBQW0yR1k7RUFDSTtBQWoyR2hCO0FBbzJHWTtFQUNJO0FBbDJHaEI7QUFxMkdZO0VBQ0k7QUFuMkdoQjtBQXUyR1E7RUFDSTtBQXIyR1o7QUF3MkdRO0VBQ0k7RUFDQTtFQUNBO0FBdDJHWjtBQXkyR1E7RUFDSTtBQXYyR1o7QUEwMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF4MkdaO0FBMjJHUTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7RUFDQTtNQUFBO1VBQUE7QUF6MkdaLEM7Ozs7QTlHL2JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkY4Tko7O0E3RjNOQTtFQUNJO0E2RjhOSjs7QTNGcE9JO0VBREo7SUFFUTtFMkZ3T047QUFDRjs7QTNGck9BO0VBQ0k7RUFDQTtFQUNBO0EyRndPSjtBM0Z0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkZ5T047QUFDRjs7QTNGdE9BO0VBR1k7SUFDSTtJQUNBO0UyRnVPZDtFM0Z6T1U7SUFDSTtJQUNBO0UyRjJPZDtFM0Y3T1U7SUFDSTtJQUNBO0UyRitPZDtFM0ZqUFU7SUFDSTtJQUNBO0UyRm1QZDtFM0ZyUFU7SUFDSTtJQUNBO0UyRnVQZDtFM0Z6UFU7SUFDSTtJQUNBO0UyRjJQZDtFM0Y3UFU7SUFDSTtJQUNBO0UyRitQZDtFM0ZqUVU7SUFDSTtJQUNBO0UyRm1RZDtFM0ZyUVU7SUFDSTtJQUNBO0UyRnVRZDtFM0Z6UVU7SUFDSTtJQUNBO0UyRjJRZDtFM0Y3UVU7SUFDSTtJQUNBO0UyRitRZDtFM0ZqUlU7SUFDSTtJQUNBO0UyRm1SZDtFM0Y5UUU7SUFDSTtFMkZnUk47QUFDRjtBM0YzUVE7RUFESjtJQUVRO0UyRjhRVjtBQUNGOztBMUZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUY2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9HNzFFZ0I7RStHODFFaEIsY3hGbjVFUztFd0ZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtFQUNBLHlCeEZudEhtQjtFd0ZvdEhuQjtBQTUxR0o7QUE4MUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY3hGOXRIZTtBd0ZrWXZCO0FBKzFHSTtFQUNJO0VBQ0E7RUFDQSxjeEZwdUhlO0F3RnVZdkI7QUFnMkdJO0VBQ0k7RUFDQTtFQUNBLGN4RjN1SGU7QXdGNll2QixDOzs7O0EvR3ZaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThGOE5KOztBOUYzTkE7RUFDSTtBOEY4Tko7O0E1RnBPSTtFQURKO0lBRVE7RTRGd09OO0FBQ0Y7O0E1RnJPQTtFQUNJO0VBQ0E7RUFDQTtBNEZ3T0o7QTVGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRGeU9OO0FBQ0Y7O0E1RnRPQTtFQUdZO0lBQ0k7SUFDQTtFNEZ1T2Q7RTVGek9VO0lBQ0k7SUFDQTtFNEYyT2Q7RTVGN09VO0lBQ0k7SUFDQTtFNEYrT2Q7RTVGalBVO0lBQ0k7SUFDQTtFNEZtUGQ7RTVGclBVO0lBQ0k7SUFDQTtFNEZ1UGQ7RTVGelBVO0lBQ0k7SUFDQTtFNEYyUGQ7RTVGN1BVO0lBQ0k7SUFDQTtFNEYrUGQ7RTVGalFVO0lBQ0k7SUFDQTtFNEZtUWQ7RTVGclFVO0lBQ0k7SUFDQTtFNEZ1UWQ7RTVGelFVO0lBQ0k7SUFDQTtFNEYyUWQ7RTVGN1FVO0lBQ0k7SUFDQTtFNEYrUWQ7RTVGalJVO0lBQ0k7SUFDQTtFNEZtUmQ7RTVGOVFFO0lBQ0k7RTRGZ1JOO0FBQ0Y7QTVGM1FRO0VBREo7SUFFUTtFNEY4UVY7QUFDRjs7QTNGblRBOztFQUFBO0FDQUE7O0VBQUE7QTBGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoSDcxRWdCO0VnSDgxRWhCLGN6Rm41RVM7RXlGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFJO0VBQ0kseUJ6RnB0SGU7RXlGcXRIZjtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCM0N4dUhnQjtBMkMwWXhCO0FBZzJHUTtFQUNJO0FBOTFHWjtBQWkyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjekZ4dUhXO0V5Rnl1SFg7RUFDQSxrQjNDcHZIWTtFMkNxdkhaO0VBQ0E7VUFBQTtBQS8xR1o7QUFtMkdJO0VBQ0k7RUFDQTtFQUNBO0FBajJHUjtBQW8yR0k7RUFDSTtBQWwyR1I7QUFvMkdRO0VBQ0k7QUFsMkdaO0FBcTJHUTtFQUNJO0FBbjJHWjtBQXMyR1E7RUFDSTtFQUNBO0FBcDJHWixDOzs7O0FoSHphQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStGOE5KOztBL0YzTkE7RUFDSTtBK0Y4Tko7O0E3RnBPSTtFQURKO0lBRVE7RTZGd09OO0FBQ0Y7O0E3RnJPQTtFQUNJO0VBQ0E7RUFDQTtBNkZ3T0o7QTdGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZGeU9OO0FBQ0Y7O0E3RnRPQTtFQUdZO0lBQ0k7SUFDQTtFNkZ1T2Q7RTdGek9VO0lBQ0k7SUFDQTtFNkYyT2Q7RTdGN09VO0lBQ0k7SUFDQTtFNkYrT2Q7RTdGalBVO0lBQ0k7SUFDQTtFNkZtUGQ7RTdGclBVO0lBQ0k7SUFDQTtFNkZ1UGQ7RTdGelBVO0lBQ0k7SUFDQTtFNkYyUGQ7RTdGN1BVO0lBQ0k7SUFDQTtFNkYrUGQ7RTdGalFVO0lBQ0k7SUFDQTtFNkZtUWQ7RTdGclFVO0lBQ0k7SUFDQTtFNkZ1UWQ7RTdGelFVO0lBQ0k7SUFDQTtFNkYyUWQ7RTdGN1FVO0lBQ0k7SUFDQTtFNkYrUWQ7RTdGalJVO0lBQ0k7SUFDQTtFNkZtUmQ7RTdGOVFFO0lBQ0k7RTZGZ1JOO0FBQ0Y7QTdGM1FRO0VBREo7SUFFUTtFNkY4UVY7QUFDRjs7QTVGblRBOztFQUFBO0FDQUE7O0VBQUE7QTJGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqSDcxRWdCO0VpSDgxRWhCLGMxRm41RVM7RTBGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWNZO0VBQ0k7QUEvMUdoQjtBQWsyR1k7RUFDSTtFQUNBLGMxRnp1SEs7QTBGeVlyQixDOzs7O0FqSHpZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdHOE5KOztBaEczTkE7RUFDSTtBZ0c4Tko7O0E5RnBPSTtFQURKO0lBRVE7RThGd09OO0FBQ0Y7O0E5RnJPQTtFQUNJO0VBQ0E7RUFDQTtBOEZ3T0o7QTlGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThGeU9OO0FBQ0Y7O0E5RnRPQTtFQUdZO0lBQ0k7SUFDQTtFOEZ1T2Q7RTlGek9VO0lBQ0k7SUFDQTtFOEYyT2Q7RTlGN09VO0lBQ0k7SUFDQTtFOEYrT2Q7RTlGalBVO0lBQ0k7SUFDQTtFOEZtUGQ7RTlGclBVO0lBQ0k7SUFDQTtFOEZ1UGQ7RTlGelBVO0lBQ0k7SUFDQTtFOEYyUGQ7RTlGN1BVO0lBQ0k7SUFDQTtFOEYrUGQ7RTlGalFVO0lBQ0k7SUFDQTtFOEZtUWQ7RTlGclFVO0lBQ0k7SUFDQTtFOEZ1UWQ7RTlGelFVO0lBQ0k7SUFDQTtFOEYyUWQ7RTlGN1FVO0lBQ0k7SUFDQTtFOEYrUWQ7RTlGalJVO0lBQ0k7SUFDQTtFOEZtUmQ7RTlGOVFFO0lBQ0k7RThGZ1JOO0FBQ0Y7QTlGM1FRO0VBREo7SUFFUTtFOEY4UVY7QUFDRjs7QTdGblRBOztFQUFBO0FDQUE7O0VBQUE7QTRGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsSDcxRWdCO0VrSDgxRWhCLGMzRm41RVM7RTJGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWNZO0VBQ0k7QUEvMUdoQjtBQWsyR1k7RUFDSTtFQUNBO0FBaDJHaEI7QUFtMkdZO0VBQ0k7QUFqMkdoQjtBcEc1V0k7RW9HaXRIWTtJQUNJO0VBbDJHbEI7RUFvMkdjO0lBQ0k7RUFsMkdsQjtBQUNGO0FwR3BYSTtFb0cwdEhZO0lBQ0k7RUFuMkdsQjtBQUNGO0FBczJHUTtFQUNJO0FBcDJHWjtBQXcyR1k7RUFDSSxjM0ZydUhRO0UyRnN1SFI7QUF0MkdoQjtBQXkyR1k7RUFDSSxjM0ZqdkhNO0UyRmt2SE47QUF2MkdoQixDOzs7O0FsSHBhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlHOE5KOztBakczTkE7RUFDSTtBaUc4Tko7O0EvRnBPSTtFQURKO0lBRVE7RStGd09OO0FBQ0Y7O0EvRnJPQTtFQUNJO0VBQ0E7RUFDQTtBK0Z3T0o7QS9GdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStGeU9OO0FBQ0Y7O0EvRnRPQTtFQUdZO0lBQ0k7SUFDQTtFK0Z1T2Q7RS9Gek9VO0lBQ0k7SUFDQTtFK0YyT2Q7RS9GN09VO0lBQ0k7SUFDQTtFK0YrT2Q7RS9GalBVO0lBQ0k7SUFDQTtFK0ZtUGQ7RS9GclBVO0lBQ0k7SUFDQTtFK0Z1UGQ7RS9GelBVO0lBQ0k7SUFDQTtFK0YyUGQ7RS9GN1BVO0lBQ0k7SUFDQTtFK0YrUGQ7RS9GalFVO0lBQ0k7SUFDQTtFK0ZtUWQ7RS9GclFVO0lBQ0k7SUFDQTtFK0Z1UWQ7RS9GelFVO0lBQ0k7SUFDQTtFK0YyUWQ7RS9GN1FVO0lBQ0k7SUFDQTtFK0YrUWQ7RS9GalJVO0lBQ0k7SUFDQTtFK0ZtUmQ7RS9GOVFFO0lBQ0k7RStGZ1JOO0FBQ0Y7QS9GM1FRO0VBREo7SUFFUTtFK0Y4UVY7QUFDRjs7QTlGblRBOztFQUFBO0FDQUE7O0VBQUE7QTZGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuSDcxRWdCO0VtSDgxRWhCLGM1Rm41RVM7RTRGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSO0FBZzJHWTtFQUNJO0FBOTFHaEI7QUFpMkdZO0VBQ0k7QUEvMUdoQjtBQW8yR1k7RUFDSTtBQWwyR2hCLEM7Ozs7QW5IOVlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBa0c4Tko7O0FsRzNOQTtFQUNJO0FrRzhOSjs7QWhHcE9JO0VBREo7SUFFUTtFZ0d3T047QUFDRjs7QWhHck9BO0VBQ0k7RUFDQTtFQUNBO0FnR3dPSjtBaEd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFZ0d5T047QUFDRjs7QWhHdE9BO0VBR1k7SUFDSTtJQUNBO0VnR3VPZDtFaEd6T1U7SUFDSTtJQUNBO0VnRzJPZDtFaEc3T1U7SUFDSTtJQUNBO0VnRytPZDtFaEdqUFU7SUFDSTtJQUNBO0VnR21QZDtFaEdyUFU7SUFDSTtJQUNBO0VnR3VQZDtFaEd6UFU7SUFDSTtJQUNBO0VnRzJQZDtFaEc3UFU7SUFDSTtJQUNBO0VnRytQZDtFaEdqUVU7SUFDSTtJQUNBO0VnR21RZDtFaEdyUVU7SUFDSTtJQUNBO0VnR3VRZDtFaEd6UVU7SUFDSTtJQUNBO0VnRzJRZDtFaEc3UVU7SUFDSTtJQUNBO0VnRytRZDtFaEdqUlU7SUFDSTtJQUNBO0VnR21SZDtFaEc5UUU7SUFDSTtFZ0dnUk47QUFDRjtBaEczUVE7RUFESjtJQUVRO0VnRzhRVjtBQUNGOztBL0ZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBOEY2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BINzFFZ0I7RW9IODFFaEIsYzdGbjVFUztFNkZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSTtBQTkxR1o7QUFnMkdZO0VBQ0k7RUFDQTtBQTkxR2hCO0FBaTJHWTtFQUNJO0FBLzFHaEIsQzs7OztBcEg1WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FtRzhOSjs7QW5HM05BO0VBQ0k7QW1HOE5KOztBakdwT0k7RUFESjtJQUVRO0VpR3dPTjtBQUNGOztBakdyT0E7RUFDSTtFQUNBO0VBQ0E7QWlHd09KO0FqR3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VpR3lPTjtBQUNGOztBakd0T0E7RUFHWTtJQUNJO0lBQ0E7RWlHdU9kO0VqR3pPVTtJQUNJO0lBQ0E7RWlHMk9kO0VqRzdPVTtJQUNJO0lBQ0E7RWlHK09kO0VqR2pQVTtJQUNJO0lBQ0E7RWlHbVBkO0VqR3JQVTtJQUNJO0lBQ0E7RWlHdVBkO0VqR3pQVTtJQUNJO0lBQ0E7RWlHMlBkO0VqRzdQVTtJQUNJO0lBQ0E7RWlHK1BkO0VqR2pRVTtJQUNJO0lBQ0E7RWlHbVFkO0VqR3JRVTtJQUNJO0lBQ0E7RWlHdVFkO0VqR3pRVTtJQUNJO0lBQ0E7RWlHMlFkO0VqRzdRVTtJQUNJO0lBQ0E7RWlHK1FkO0VqR2pSVTtJQUNJO0lBQ0E7RWlHbVJkO0VqRzlRRTtJQUNJO0VpR2dSTjtBQUNGO0FqRzNRUTtFQURKO0lBRVE7RWlHOFFWO0FBQ0Y7O0FoR25UQTs7RUFBQTtBQ0FBOztFQUFBO0ErRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDckg3MUVnQjtFcUg4MUVoQixjOUZuNUVTO0U4Rm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0VBQ0E7RUFDQTtBQTkxR1o7QUFpMkdRO0VBQ0ksYzlGL3RIVztBOEZnWXZCO0FBZzJHWTtFQUNJLGM5Rmh1SE87QThGa1l2QixDOzs7O0FySDdZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9HOE5KOztBcEczTkE7RUFDSTtBb0c4Tko7O0FsR3BPSTtFQURKO0lBRVE7RWtHd09OO0FBQ0Y7O0FsR3JPQTtFQUNJO0VBQ0E7RUFDQTtBa0d3T0o7QWxHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtHeU9OO0FBQ0Y7O0FsR3RPQTtFQUdZO0lBQ0k7SUFDQTtFa0d1T2Q7RWxHek9VO0lBQ0k7SUFDQTtFa0cyT2Q7RWxHN09VO0lBQ0k7SUFDQTtFa0crT2Q7RWxHalBVO0lBQ0k7SUFDQTtFa0dtUGQ7RWxHclBVO0lBQ0k7SUFDQTtFa0d1UGQ7RWxHelBVO0lBQ0k7SUFDQTtFa0cyUGQ7RWxHN1BVO0lBQ0k7SUFDQTtFa0crUGQ7RWxHalFVO0lBQ0k7SUFDQTtFa0dtUWQ7RWxHclFVO0lBQ0k7SUFDQTtFa0d1UWQ7RWxHelFVO0lBQ0k7SUFDQTtFa0cyUWQ7RWxHN1FVO0lBQ0k7SUFDQTtFa0crUWQ7RWxHalJVO0lBQ0k7SUFDQTtFa0dtUmQ7RWxHOVFFO0lBQ0k7RWtHZ1JOO0FBQ0Y7QWxHM1FRO0VBREo7SUFFUTtFa0c4UVY7QUFDRjs7QWpHblRBOztFQUFBO0FDQUE7O0VBQUE7QWdHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0SDcxRWdCO0VzSDgxRWhCLGMvRm41RVM7RStGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0FBNzFHUjtBQWcyR0k7RUFDSTtFQUNBO0VBQ0EsYy9GNXNIaUI7QStGOFd6QjtBQWkyR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLG1CL0ZwdEhpQjtFK0ZxdEhqQjtBQS8xR1I7QUFrMkdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDJHUjtBQWsyR1E7RUFFSTtFQUNBO0VBQ0EsZ0IvRi92SFU7RStGZ3dIVjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHWjtBQW8yR1E7RUFDSTtBQWwyR1o7QUFxMkdRO0VBQ0k7QUFuMkdaLEM7Ozs7QXRINWFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUc4Tko7O0FyRzNOQTtFQUNJO0FxRzhOSjs7QW5HcE9JO0VBREo7SUFFUTtFbUd3T047QUFDRjs7QW5Hck9BO0VBQ0k7RUFDQTtFQUNBO0FtR3dPSjtBbkd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUd5T047QUFDRjs7QW5HdE9BO0VBR1k7SUFDSTtJQUNBO0VtR3VPZDtFbkd6T1U7SUFDSTtJQUNBO0VtRzJPZDtFbkc3T1U7SUFDSTtJQUNBO0VtRytPZDtFbkdqUFU7SUFDSTtJQUNBO0VtR21QZDtFbkdyUFU7SUFDSTtJQUNBO0VtR3VQZDtFbkd6UFU7SUFDSTtJQUNBO0VtRzJQZDtFbkc3UFU7SUFDSTtJQUNBO0VtRytQZDtFbkdqUVU7SUFDSTtJQUNBO0VtR21RZDtFbkdyUVU7SUFDSTtJQUNBO0VtR3VRZDtFbkd6UVU7SUFDSTtJQUNBO0VtRzJRZDtFbkc3UVU7SUFDSTtJQUNBO0VtRytRZDtFbkdqUlU7SUFDSTtJQUNBO0VtR21SZDtFbkc5UUU7SUFDSTtFbUdnUk47QUFDRjtBbkczUVE7RUFESjtJQUVRO0VtRzhRVjtBQUNGOztBbEduVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZINzFFZ0I7RXVIODFFaEIsY2hHbjVFUztFZ0dvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1IsQzs7OztBdkhyWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FzRzhOSjs7QXRHM05BO0VBQ0k7QXNHOE5KOztBcEdwT0k7RUFESjtJQUVRO0VvR3dPTjtBQUNGOztBcEdyT0E7RUFDSTtFQUNBO0VBQ0E7QW9Hd09KO0FwR3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VvR3lPTjtBQUNGOztBcEd0T0E7RUFHWTtJQUNJO0lBQ0E7RW9HdU9kO0VwR3pPVTtJQUNJO0lBQ0E7RW9HMk9kO0VwRzdPVTtJQUNJO0lBQ0E7RW9HK09kO0VwR2pQVTtJQUNJO0lBQ0E7RW9HbVBkO0VwR3JQVTtJQUNJO0lBQ0E7RW9HdVBkO0VwR3pQVTtJQUNJO0lBQ0E7RW9HMlBkO0VwRzdQVTtJQUNJO0lBQ0E7RW9HK1BkO0VwR2pRVTtJQUNJO0lBQ0E7RW9HbVFkO0VwR3JRVTtJQUNJO0lBQ0E7RW9HdVFkO0VwR3pRVTtJQUNJO0lBQ0E7RW9HMlFkO0VwRzdRVTtJQUNJO0lBQ0E7RW9HK1FkO0VwR2pSVTtJQUNJO0lBQ0E7RW9HbVJkO0VwRzlRRTtJQUNJO0VvR2dSTjtBQUNGO0FwRzNRUTtFQURKO0lBRVE7RW9HOFFWO0FBQ0Y7O0FuR25UQTs7RUFBQTtBQ0FBOztFQUFBO0FrRzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDeEg3MUVnQjtFd0g4MUVoQixjakduNUVTO0VpR281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFDQTtBQTkxR1o7QUFpMkdRO0VBQ0ksV2pHNXVIVTtBaUc2WXRCO0FBazJHUTtFQUNJO0FBaDJHWjtBQWsyR1k7RUFDSSxjakc3dUhPO0VpRzh1SFA7QUFoMkdoQixDOzs7O0F4SHpaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXVHOE5KOztBdkczTkE7RUFDSTtBdUc4Tko7O0FyR3BPSTtFQURKO0lBRVE7RXFHd09OO0FBQ0Y7O0FyR3JPQTtFQUNJO0VBQ0E7RUFDQTtBcUd3T0o7QXJHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXFHeU9OO0FBQ0Y7O0FyR3RPQTtFQUdZO0lBQ0k7SUFDQTtFcUd1T2Q7RXJHek9VO0lBQ0k7SUFDQTtFcUcyT2Q7RXJHN09VO0lBQ0k7SUFDQTtFcUcrT2Q7RXJHalBVO0lBQ0k7SUFDQTtFcUdtUGQ7RXJHclBVO0lBQ0k7SUFDQTtFcUd1UGQ7RXJHelBVO0lBQ0k7SUFDQTtFcUcyUGQ7RXJHN1BVO0lBQ0k7SUFDQTtFcUcrUGQ7RXJHalFVO0lBQ0k7SUFDQTtFcUdtUWQ7RXJHclFVO0lBQ0k7SUFDQTtFcUd1UWQ7RXJHelFVO0lBQ0k7SUFDQTtFcUcyUWQ7RXJHN1FVO0lBQ0k7SUFDQTtFcUcrUWQ7RXJHalJVO0lBQ0k7SUFDQTtFcUdtUmQ7RXJHOVFFO0lBQ0k7RXFHZ1JOO0FBQ0Y7QXJHM1FRO0VBREo7SUFFUTtFcUc4UVY7QUFDRjs7QXBHblRBOztFQUFBO0FDQUE7O0VBQUE7QW1HNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N6SDcxRWdCO0V5SDgxRWhCLGNsR241RVM7RWtHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtBQTcxR1I7QUErMUdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzFHWixDOzs7O0F6SDNZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdHOE5KOztBeEczTkE7RUFDSTtBd0c4Tko7O0F0R3BPSTtFQURKO0lBRVE7RXNHd09OO0FBQ0Y7O0F0R3JPQTtFQUNJO0VBQ0E7RUFDQTtBc0d3T0o7QXRHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNHeU9OO0FBQ0Y7O0F0R3RPQTtFQUdZO0lBQ0k7SUFDQTtFc0d1T2Q7RXRHek9VO0lBQ0k7SUFDQTtFc0cyT2Q7RXRHN09VO0lBQ0k7SUFDQTtFc0crT2Q7RXRHalBVO0lBQ0k7SUFDQTtFc0dtUGQ7RXRHclBVO0lBQ0k7SUFDQTtFc0d1UGQ7RXRHelBVO0lBQ0k7SUFDQTtFc0cyUGQ7RXRHN1BVO0lBQ0k7SUFDQTtFc0crUGQ7RXRHalFVO0lBQ0k7SUFDQTtFc0dtUWQ7RXRHclFVO0lBQ0k7SUFDQTtFc0d1UWQ7RXRHelFVO0lBQ0k7SUFDQTtFc0cyUWQ7RXRHN1FVO0lBQ0k7SUFDQTtFc0crUWQ7RXRHalJVO0lBQ0k7SUFDQTtFc0dtUmQ7RXRHOVFFO0lBQ0k7RXNHZ1JOO0FBQ0Y7QXRHM1FRO0VBREo7SUFFUTtFc0c4UVY7QUFDRjs7QXJHblRBOztFQUFBO0FDQUE7O0VBQUE7QW9HNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxSDcxRWdCO0UwSDgxRWhCLGNuR241RVM7RW1HbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtBQTcxR1I7QUErMUdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0EseUJuR3R0SFk7QW1HeVh4QjtBQTgxR1k7RUFDSSx5Qm5HanVITztBbUdxWXZCO0FBZzJHUTtFQUNJO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJLFduR2h2SFU7QW1HaVp0QjtBQWsyR1E7RUFDSTtBQWgyR1o7QUFrMkdZO0VBQ0ksY25HanZITztFbUdrdkhQO0FBaDJHaEIsQzs7OztBMUg3WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5RzhOSjs7QXpHM05BO0VBQ0k7QXlHOE5KOztBdkdwT0k7RUFESjtJQUVRO0V1R3dPTjtBQUNGOztBdkdyT0E7RUFDSTtFQUNBO0VBQ0E7QXVHd09KO0F2R3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1R3lPTjtBQUNGOztBdkd0T0E7RUFHWTtJQUNJO0lBQ0E7RXVHdU9kO0V2R3pPVTtJQUNJO0lBQ0E7RXVHMk9kO0V2RzdPVTtJQUNJO0lBQ0E7RXVHK09kO0V2R2pQVTtJQUNJO0lBQ0E7RXVHbVBkO0V2R3JQVTtJQUNJO0lBQ0E7RXVHdVBkO0V2R3pQVTtJQUNJO0lBQ0E7RXVHMlBkO0V2RzdQVTtJQUNJO0lBQ0E7RXVHK1BkO0V2R2pRVTtJQUNJO0lBQ0E7RXVHbVFkO0V2R3JRVTtJQUNJO0lBQ0E7RXVHdVFkO0V2R3pRVTtJQUNJO0lBQ0E7RXVHMlFkO0V2RzdRVTtJQUNJO0lBQ0E7RXVHK1FkO0V2R2pSVTtJQUNJO0lBQ0E7RXVHbVJkO0V2RzlRRTtJQUNJO0V1R2dSTjtBQUNGO0F2RzNRUTtFQURKO0lBRVE7RXVHOFFWO0FBQ0Y7O0F0R25UQTs7RUFBQTtBQ0FBOztFQUFBO0FxRzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0g3MUVnQjtFMkg4MUVoQixjcEduNUVTO0VvR281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0FBNTFHSjtBQTgxR0k7RUFDSTtBQTUxR1I7QUErMUdJOztFQUVJO0FBNzFHUjtBQWcyR0k7RUFDSSxjcEdsdUhlO0VvR211SGY7RUFDQTtBQTkxR1I7QUFnMkdRO0VBQ0ksY3BHbHZIUztBb0dvWnJCO0FBaTJHUTtFQUNJLGNwR3J2SFE7QW9Hc1pwQixDOzs7O0EzSHZaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBHOE5KOztBMUczTkE7RUFDSTtBMEc4Tko7O0F4R3BPSTtFQURKO0lBRVE7RXdHd09OO0FBQ0Y7O0F4R3JPQTtFQUNJO0VBQ0E7RUFDQTtBd0d3T0o7QXhHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdHeU9OO0FBQ0Y7O0F4R3RPQTtFQUdZO0lBQ0k7SUFDQTtFd0d1T2Q7RXhHek9VO0lBQ0k7SUFDQTtFd0cyT2Q7RXhHN09VO0lBQ0k7SUFDQTtFd0crT2Q7RXhHalBVO0lBQ0k7SUFDQTtFd0dtUGQ7RXhHclBVO0lBQ0k7SUFDQTtFd0d1UGQ7RXhHelBVO0lBQ0k7SUFDQTtFd0cyUGQ7RXhHN1BVO0lBQ0k7SUFDQTtFd0crUGQ7RXhHalFVO0lBQ0k7SUFDQTtFd0dtUWQ7RXhHclFVO0lBQ0k7SUFDQTtFd0d1UWQ7RXhHelFVO0lBQ0k7SUFDQTtFd0cyUWQ7RXhHN1FVO0lBQ0k7SUFDQTtFd0crUWQ7RXhHalJVO0lBQ0k7SUFDQTtFd0dtUmQ7RXhHOVFFO0lBQ0k7RXdHZ1JOO0FBQ0Y7QXhHM1FRO0VBREo7SUFFUTtFd0c4UVY7QUFDRjs7QXZHblRBOztFQUFBO0FDQUE7O0VBQUE7QXNHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1SDcxRWdCO0U0SDgxRWhCLGNyR241RVM7RXFHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQSxDOzs7O0E1SHJ0SEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EyRzhOSjs7QTNHM05BO0VBQ0k7QTJHOE5KOztBekdwT0k7RUFESjtJQUVRO0V5R3dPTjtBQUNGOztBekdyT0E7RUFDSTtFQUNBO0VBQ0E7QXlHd09KO0F6R3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V5R3lPTjtBQUNGOztBekd0T0E7RUFHWTtJQUNJO0lBQ0E7RXlHdU9kO0V6R3pPVTtJQUNJO0lBQ0E7RXlHMk9kO0V6RzdPVTtJQUNJO0lBQ0E7RXlHK09kO0V6R2pQVTtJQUNJO0lBQ0E7RXlHbVBkO0V6R3JQVTtJQUNJO0lBQ0E7RXlHdVBkO0V6R3pQVTtJQUNJO0lBQ0E7RXlHMlBkO0V6RzdQVTtJQUNJO0lBQ0E7RXlHK1BkO0V6R2pRVTtJQUNJO0lBQ0E7RXlHbVFkO0V6R3JRVTtJQUNJO0lBQ0E7RXlHdVFkO0V6R3pRVTtJQUNJO0lBQ0E7RXlHMlFkO0V6RzdRVTtJQUNJO0lBQ0E7RXlHK1FkO0V6R2pSVTtJQUNJO0lBQ0E7RXlHbVJkO0V6RzlRRTtJQUNJO0V5R2dSTjtBQUNGO0F6RzNRUTtFQURKO0lBRVE7RXlHOFFWO0FBQ0Y7O0F4R25UQTs7RUFBQTtBQ0FBOztFQUFBO0F1RzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDN0g3MUVnQjtFNkg4MUVoQixjdEduNUVTO0VzR281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJLHlCdEcxdEhXO0FzRzZYdkI7QUErMUdZO0VBQ0k7QUE3MUdoQjtBQWkyR1E7RUFDSSxlNUhwdUhhO0U0SHF1SGIsY3RHdnVIVztFc0d3dUhYO0VBQ0E7QUEvMUdaO0FBaTJHWTtFQUNJLGN0RzV1SE87QXNHNll2QjtBQW0yR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFqMkdaO0FBbzJHUTtFQUNJLGN0RzF2SFc7RXNHMnZIWDtBQWwyR1o7QUFxMkdRO0VBQ0ksZTVIN3ZIYTtFNEg4dkhiO0VBQ0E7RUFDQSxjdEdsd0hXO0FzRytadkI7QUFxMkdZO0VBQ0ksY3RHcndITztBc0drYXZCO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN0Rzd3SFc7QXNHd2F2QjtBQXUyR1k7RUFDSSxjdEczeEhLO0FzR3NickI7QUF5MkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFd0R2h5SFU7RXNHaXlIVix5QnRHendIYTtFc0cwd0hiO0VBQ0E7RUFDQSxrQnhEenlIWTtFd0QweUhaO0FBdjJHWixDOzs7O0E3SG5jQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRHOE5KOztBNUczTkE7RUFDSTtBNEc4Tko7O0ExR3BPSTtFQURKO0lBRVE7RTBHd09OO0FBQ0Y7O0ExR3JPQTtFQUNJO0VBQ0E7RUFDQTtBMEd3T0o7QTFHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBHeU9OO0FBQ0Y7O0ExR3RPQTtFQUdZO0lBQ0k7SUFDQTtFMEd1T2Q7RTFHek9VO0lBQ0k7SUFDQTtFMEcyT2Q7RTFHN09VO0lBQ0k7SUFDQTtFMEcrT2Q7RTFHalBVO0lBQ0k7SUFDQTtFMEdtUGQ7RTFHclBVO0lBQ0k7SUFDQTtFMEd1UGQ7RTFHelBVO0lBQ0k7SUFDQTtFMEcyUGQ7RTFHN1BVO0lBQ0k7SUFDQTtFMEcrUGQ7RTFHalFVO0lBQ0k7SUFDQTtFMEdtUWQ7RTFHclFVO0lBQ0k7SUFDQTtFMEd1UWQ7RTFHelFVO0lBQ0k7SUFDQTtFMEcyUWQ7RTFHN1FVO0lBQ0k7SUFDQTtFMEcrUWQ7RTFHalJVO0lBQ0k7SUFDQTtFMEdtUmQ7RTFHOVFFO0lBQ0k7RTBHZ1JOO0FBQ0Y7QTFHM1FRO0VBREo7SUFFUTtFMEc4UVY7QUFDRjs7QXpHblRBOztFQUFBO0FDQUE7O0VBQUE7QXdHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5SDcxRWdCO0U4SDgxRWhCLGN2R241RVM7RXVHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0k7QUE1MUdKO0FBODFHSTtFQUNJLHlCdkdydEhlO0V1R3N0SGY7QUE1MUdSO0FBKzFHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN2R2p1SGU7RXVHa3VIZjtBQTcxR1I7QUFnMkdJO0VBQ0ksY3ZHdnVIZTtFdUd3dUhmO0VBQ0E7QUE5MUdSLEM7Ozs7QTlIclpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkc4Tko7O0E3RzNOQTtFQUNJO0E2RzhOSjs7QTNHcE9JO0VBREo7SUFFUTtFMkd3T047QUFDRjs7QTNHck9BO0VBQ0k7RUFDQTtFQUNBO0EyR3dPSjtBM0d0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkd5T047QUFDRjs7QTNHdE9BO0VBR1k7SUFDSTtJQUNBO0UyR3VPZDtFM0d6T1U7SUFDSTtJQUNBO0UyRzJPZDtFM0c3T1U7SUFDSTtJQUNBO0UyRytPZDtFM0dqUFU7SUFDSTtJQUNBO0UyR21QZDtFM0dyUFU7SUFDSTtJQUNBO0UyR3VQZDtFM0d6UFU7SUFDSTtJQUNBO0UyRzJQZDtFM0c3UFU7SUFDSTtJQUNBO0UyRytQZDtFM0dqUVU7SUFDSTtJQUNBO0UyR21RZDtFM0dyUVU7SUFDSTtJQUNBO0UyR3VRZDtFM0d6UVU7SUFDSTtJQUNBO0UyRzJRZDtFM0c3UVU7SUFDSTtJQUNBO0UyRytRZDtFM0dqUlU7SUFDSTtJQUNBO0UyR21SZDtFM0c5UUU7SUFDSTtFMkdnUk47QUFDRjtBM0czUVE7RUFESjtJQUVRO0UyRzhRVjtBQUNGOztBMUduVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9INzFFZ0I7RStIODFFaEIsY3hHbjVFUztFd0dvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSTtBQTkxR1o7QUFnMkdZO0VBQ0k7QUE5MUdoQjtBakhqVkk7RWlIa3JIUTtJQUVRO0VBLzFHbEI7QUFDRjtBQW0yR1E7RUFDSTtFQUNBO0FBajJHWjtBQW0yR1k7RUFDSTtVQUFBO0FBajJHaEI7QUFxMkdRO0VBQ0k7QUFuMkdaO0FBczJHUTtFQUNJO0VBQ0E7RUFDQTtBQXAyR1o7QUF1MkdRO0VBQ0k7QUFyMkdaO0FBdTJHWTtFQUNJO0VBQ0E7QUFyMkdoQjtBakhuWUk7RWlIc3VIUTtJQUtRO0VBcDJHbEI7QUFDRjtBQXMyR2dCO0VBQ0k7QUFwMkdwQjtBQXkyR1E7RUFDSTtBQXYyR1o7QUEwMkdRO0VBQ0k7QUF4MkdaO0FBMjJHUTtFQUNJO0VBQ0E7QUF6MkdaO0FBNjJHWTtFQUNJO0FBMzJHaEI7QUE4MkdZO0VBQ0k7RUFDQSxjeEd4eUhLO0F3RzRickI7QUFnM0dRO0VBQ0ksY3hHN3lIUztFd0c4eUhULHNCeEd6eUhVO0F3RzJidEI7QUFtM0dRO0VBQ0k7QUFqM0daLEM7Ozs7QS9IbmNBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBOEc4Tko7O0E5RzNOQTtFQUNJO0E4RzhOSjs7QTVHcE9JO0VBREo7SUFFUTtFNEd3T047QUFDRjs7QTVHck9BO0VBQ0k7RUFDQTtFQUNBO0E0R3dPSjtBNUd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNEd5T047QUFDRjs7QTVHdE9BO0VBR1k7SUFDSTtJQUNBO0U0R3VPZDtFNUd6T1U7SUFDSTtJQUNBO0U0RzJPZDtFNUc3T1U7SUFDSTtJQUNBO0U0RytPZDtFNUdqUFU7SUFDSTtJQUNBO0U0R21QZDtFNUdyUFU7SUFDSTtJQUNBO0U0R3VQZDtFNUd6UFU7SUFDSTtJQUNBO0U0RzJQZDtFNUc3UFU7SUFDSTtJQUNBO0U0RytQZDtFNUdqUVU7SUFDSTtJQUNBO0U0R21RZDtFNUdyUVU7SUFDSTtJQUNBO0U0R3VRZDtFNUd6UVU7SUFDSTtJQUNBO0U0RzJRZDtFNUc3UVU7SUFDSTtJQUNBO0U0RytRZDtFNUdqUlU7SUFDSTtJQUNBO0U0R21SZDtFNUc5UUU7SUFDSTtFNEdnUk47QUFDRjtBNUczUVE7RUFESjtJQUVRO0U0RzhRVjtBQUNGOztBM0duVEE7O0VBQUE7QUNBQTs7RUFBQTtBMEc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2hJNzFFZ0I7RWdJODFFaEIsY3pHbjVFUztFeUdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7QUE5MUdSO0FBZzJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBOTFHWjtBQWcyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTkxR2hCO0FBazJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLHlCekdwd0hRO0V5R3F3SFIsV3pHandIVTtFeUdrd0hWO0VBQ0E7QUFoMkdaO0FBazJHWTtFQUNJO0VBQ0EsV3pHdndITTtFeUd3d0hOO0FBaDJHaEI7QUFvMkdRO0VBQ0k7QUFsMkdaO0FBbzJHWTtFQUNJO0FBbDJHaEI7QUFxMkdZO0VBQ0ksV3pHdHhITTtBeUdtYnRCO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXIyR1o7QUF3MkdRO0VBQ0k7RUFDQTtBQXQyR1o7QUF3MkdRO0VBQ0k7QUF0MkdaOztBQTAyR0k7RUFDSTtFQUNBO0VBQ0E7QUF2MkdSLEM7Ozs7QWhJM2NBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBK0c4Tko7O0EvRzNOQTtFQUNJO0ErRzhOSjs7QTdHcE9JO0VBREo7SUFFUTtFNkd3T047QUFDRjs7QTdHck9BO0VBQ0k7RUFDQTtFQUNBO0E2R3dPSjtBN0d0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNkd5T047QUFDRjs7QTdHdE9BO0VBR1k7SUFDSTtJQUNBO0U2R3VPZDtFN0d6T1U7SUFDSTtJQUNBO0U2RzJPZDtFN0c3T1U7SUFDSTtJQUNBO0U2RytPZDtFN0dqUFU7SUFDSTtJQUNBO0U2R21QZDtFN0dyUFU7SUFDSTtJQUNBO0U2R3VQZDtFN0d6UFU7SUFDSTtJQUNBO0U2RzJQZDtFN0c3UFU7SUFDSTtJQUNBO0U2RytQZDtFN0dqUVU7SUFDSTtJQUNBO0U2R21RZDtFN0dyUVU7SUFDSTtJQUNBO0U2R3VRZDtFN0d6UVU7SUFDSTtJQUNBO0U2RzJRZDtFN0c3UVU7SUFDSTtJQUNBO0U2RytRZDtFN0dqUlU7SUFDSTtJQUNBO0U2R21SZDtFN0c5UUU7SUFDSTtFNkdnUk47QUFDRjtBN0czUVE7RUFESjtJQUVRO0U2RzhRVjtBQUNGOztBNUduVEE7O0VBQUE7QUNBQTs7RUFBQTtBMkc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pJNzFFZ0I7RWlJODFFaEIsYzFHbjVFUztFMEdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSxnQjFHN3RIYztFMEc4dEhkO0VBQ0E7RUFDQTtBQTcxR1I7QUFpMkdZO0VBQ0ksbUIxR250SFE7QTBHb1h4QjtBQW0yR1E7RUFDSTtBQWoyR1o7QUFvMkdRO0VBQ0k7QUFsMkdaO0FBcTJHUTtFQUNJO0VBQ0E7QUFuMkdaO0FBcTJHWTtFQUNJO0FBbjJHaEI7QUF3MkdZO0VBQ0k7QUF0MkdoQixDOzs7O0FqSTNaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdIOE5KOztBaEgzTkE7RUFDSTtBZ0g4Tko7O0E5R3BPSTtFQURKO0lBRVE7RThHd09OO0FBQ0Y7O0E5R3JPQTtFQUNJO0VBQ0E7RUFDQTtBOEd3T0o7QTlHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThHeU9OO0FBQ0Y7O0E5R3RPQTtFQUdZO0lBQ0k7SUFDQTtFOEd1T2Q7RTlHek9VO0lBQ0k7SUFDQTtFOEcyT2Q7RTlHN09VO0lBQ0k7SUFDQTtFOEcrT2Q7RTlHalBVO0lBQ0k7SUFDQTtFOEdtUGQ7RTlHclBVO0lBQ0k7SUFDQTtFOEd1UGQ7RTlHelBVO0lBQ0k7SUFDQTtFOEcyUGQ7RTlHN1BVO0lBQ0k7SUFDQTtFOEcrUGQ7RTlHalFVO0lBQ0k7SUFDQTtFOEdtUWQ7RTlHclFVO0lBQ0k7SUFDQTtFOEd1UWQ7RTlHelFVO0lBQ0k7SUFDQTtFOEcyUWQ7RTlHN1FVO0lBQ0k7SUFDQTtFOEcrUWQ7RTlHalJVO0lBQ0k7SUFDQTtFOEdtUmQ7RTlHOVFFO0lBQ0k7RThHZ1JOO0FBQ0Y7QTlHM1FRO0VBREo7SUFFUTtFOEc4UVY7QUFDRjs7QTdHblRBOztFQUFBO0FDQUE7O0VBQUE7QTRHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsSTcxRWdCO0VrSTgxRWhCLGMzR241RVM7RTJHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksZ0IzRzd0SGM7RTJHOHRIZDtFQUNBO0FBNzFHUjtBQSsxR1E7RUFMSjtJQU1RO0VBNTFHVjtBQUNGO0FBODFHUTtFQUNJO0FBNTFHWjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdRO0VBRUk7QUEvMUdaLEM7Ozs7QWxJclpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBaUg4Tko7O0FqSDNOQTtFQUNJO0FpSDhOSjs7QS9HcE9JO0VBREo7SUFFUTtFK0d3T047QUFDRjs7QS9Hck9BO0VBQ0k7RUFDQTtFQUNBO0ErR3dPSjtBL0d0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFK0d5T047QUFDRjs7QS9HdE9BO0VBR1k7SUFDSTtJQUNBO0UrR3VPZDtFL0d6T1U7SUFDSTtJQUNBO0UrRzJPZDtFL0c3T1U7SUFDSTtJQUNBO0UrRytPZDtFL0dqUFU7SUFDSTtJQUNBO0UrR21QZDtFL0dyUFU7SUFDSTtJQUNBO0UrR3VQZDtFL0d6UFU7SUFDSTtJQUNBO0UrRzJQZDtFL0c3UFU7SUFDSTtJQUNBO0UrRytQZDtFL0dqUVU7SUFDSTtJQUNBO0UrR21RZDtFL0dyUVU7SUFDSTtJQUNBO0UrR3VRZDtFL0d6UVU7SUFDSTtJQUNBO0UrRzJRZDtFL0c3UVU7SUFDSTtJQUNBO0UrRytRZDtFL0dqUlU7SUFDSTtJQUNBO0UrR21SZDtFL0c5UUU7SUFDSTtFK0dnUk47QUFDRjtBL0czUVE7RUFESjtJQUVRO0UrRzhRVjtBQUNGOztBOUduVEE7O0VBQUE7QUNBQTs7RUFBQTtBNkc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q25JNzFFZ0I7RW1JODFFaEIsYzVHbjVFUztFNEdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSSxnQjVHOXRIVTtFNEcrdEhWO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBLFV0RXJ1SFk7QXNFdVk1QjtBQWkyR1k7RUFDSTtBQS8xR2hCO0FBbTJHb0I7O0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDJHeEI7QUFrMkd3Qjs7RUFDSTtFQUNBO0VBQ0E7QUEvMUc1QjtBQXMyR3dCO0VBQ0k7QUFwMkc1QjtBQTIyR3dCO0VBQ0k7QUF6Mkc1QjtBQWczR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjNUc1d0hXO0U0RzZ3SFg7RUFDQTtBQTkyR1o7QUFpM0dRO0VBQ0k7QUEvMkdaO0FBazNHUTtFQUNJO0VBQ0E7QUFoM0daO0FBbTNHUTtFQUNJO0FBajNHWixDOzs7O0FuSTFiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWtIOE5KOztBbEgzTkE7RUFDSTtBa0g4Tko7O0FoSHBPSTtFQURKO0lBRVE7RWdId09OO0FBQ0Y7O0FoSHJPQTtFQUNJO0VBQ0E7RUFDQTtBZ0h3T0o7QWhIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWdIeU9OO0FBQ0Y7O0FoSHRPQTtFQUdZO0lBQ0k7SUFDQTtFZ0h1T2Q7RWhIek9VO0lBQ0k7SUFDQTtFZ0gyT2Q7RWhIN09VO0lBQ0k7SUFDQTtFZ0grT2Q7RWhIalBVO0lBQ0k7SUFDQTtFZ0htUGQ7RWhIclBVO0lBQ0k7SUFDQTtFZ0h1UGQ7RWhIelBVO0lBQ0k7SUFDQTtFZ0gyUGQ7RWhIN1BVO0lBQ0k7SUFDQTtFZ0grUGQ7RWhIalFVO0lBQ0k7SUFDQTtFZ0htUWQ7RWhIclFVO0lBQ0k7SUFDQTtFZ0h1UWQ7RWhIelFVO0lBQ0k7SUFDQTtFZ0gyUWQ7RWhIN1FVO0lBQ0k7SUFDQTtFZ0grUWQ7RWhIalJVO0lBQ0k7SUFDQTtFZ0htUmQ7RWhIOVFFO0lBQ0k7RWdIZ1JOO0FBQ0Y7QWhIM1FRO0VBREo7SUFFUTtFZ0g4UVY7QUFDRjs7QS9HblRBOztFQUFBO0FDQUE7O0VBQUE7QThHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NwSTcxRWdCO0VvSTgxRWhCLGM3R241RVM7RTZHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzdHM3RIVztBNkc2WHZCO0FBaTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGM3R251SFc7QTZHb1l2QixDOzs7O0FwSTlZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1IOE5KOztBbkgzTkE7RUFDSTtBbUg4Tko7O0FqSHBPSTtFQURKO0lBRVE7RWlId09OO0FBQ0Y7O0FqSHJPQTtFQUNJO0VBQ0E7RUFDQTtBaUh3T0o7QWpIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlIeU9OO0FBQ0Y7O0FqSHRPQTtFQUdZO0lBQ0k7SUFDQTtFaUh1T2Q7RWpIek9VO0lBQ0k7SUFDQTtFaUgyT2Q7RWpIN09VO0lBQ0k7SUFDQTtFaUgrT2Q7RWpIalBVO0lBQ0k7SUFDQTtFaUhtUGQ7RWpIclBVO0lBQ0k7SUFDQTtFaUh1UGQ7RWpIelBVO0lBQ0k7SUFDQTtFaUgyUGQ7RWpIN1BVO0lBQ0k7SUFDQTtFaUgrUGQ7RWpIalFVO0lBQ0k7SUFDQTtFaUhtUWQ7RWpIclFVO0lBQ0k7SUFDQTtFaUh1UWQ7RWpIelFVO0lBQ0k7SUFDQTtFaUgyUWQ7RWpIN1FVO0lBQ0k7SUFDQTtFaUgrUWQ7RWpIalJVO0lBQ0k7SUFDQTtFaUhtUmQ7RWpIOVFFO0lBQ0k7RWlIZ1JOO0FBQ0Y7QWpIM1FRO0VBREo7SUFFUTtFaUg4UVY7QUFDRjs7QWhIblRBOztFQUFBO0FDQUE7O0VBQUE7QStHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NySTcxRWdCO0VxSTgxRWhCLGM5R241RVM7RThHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdKOztBQSsxR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNTFHSjtBQTgxR0k7RUFDSTtBQTUxR1I7QUErMUdJO0VBQ0k7RUFDQTtBQTcxR1I7O0FBZzJHQTs7RUFFSTtFQUlBO0FBNzFHSjs7QUFnMkdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNzFHSjtBQSsxR0k7RUFFSTtFQUNBO0FBOTFHUjtBQWkyR0k7RUFDSTtBQS8xR1I7QUFrMkdJO0VBQ0k7QUFoMkdSOztBQW0yR0E7RUFDSTtFQUNBO0VBQ0E7RUFXQTtBQTEyR0o7QUFnMkdJO0VBQ0k7QUE5MUdSO0FBZzJHSTtFQUNJO0FBOTFHUjtBQWcyR0k7RUFDSTtBQTkxR1I7QUFtMkdJO0VBQ0k7QUFqMkdSO0FBbzJHSTtFQUNJO0FBbDJHUjtBQXEyR0k7RUFDSTtBQW4yR1I7QUFzMkdJO0VBQ0k7RUFDQTtFQUNBO0FBcDJHUjs7QUF1MkdBO0VBQ0k7QUFwMkdKLEM7Ozs7QXJJOWRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBb0g4Tko7O0FwSDNOQTtFQUNJO0FvSDhOSjs7QWxIcE9JO0VBREo7SUFFUTtFa0h3T047QUFDRjs7QWxIck9BO0VBQ0k7RUFDQTtFQUNBO0FrSHdPSjtBbEh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFa0h5T047QUFDRjs7QWxIdE9BO0VBR1k7SUFDSTtJQUNBO0VrSHVPZDtFbEh6T1U7SUFDSTtJQUNBO0VrSDJPZDtFbEg3T1U7SUFDSTtJQUNBO0VrSCtPZDtFbEhqUFU7SUFDSTtJQUNBO0VrSG1QZDtFbEhyUFU7SUFDSTtJQUNBO0VrSHVQZDtFbEh6UFU7SUFDSTtJQUNBO0VrSDJQZDtFbEg3UFU7SUFDSTtJQUNBO0VrSCtQZDtFbEhqUVU7SUFDSTtJQUNBO0VrSG1RZDtFbEhyUVU7SUFDSTtJQUNBO0VrSHVRZDtFbEh6UVU7SUFDSTtJQUNBO0VrSDJRZDtFbEg3UVU7SUFDSTtJQUNBO0VrSCtRZDtFbEhqUlU7SUFDSTtJQUNBO0VrSG1SZDtFbEg5UUU7SUFDSTtFa0hnUk47QUFDRjtBbEgzUVE7RUFESjtJQUVRO0VrSDhRVjtBQUNGOztBakhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBZ0g2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3RJNzFFZ0I7RXNJODFFaEIsYy9HbjVFUztFK0dvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSxnQi9HN3RIYztFK0c4dEhkO0FBNzFHUjtBeEh0V0k7RXdIaXNIQTtJQUtRO0VBNTFHVjtBQUNGO0FBODFHUTtFQUNJO0VBQ0E7RUFDQSxVekU1dUhTO0F5RWdackI7QXhIaFhJO0V3SHlzSEk7SUFNUTtFQTMxR2Q7QUFDRjtBQTgxR1E7RTNIbnVISiw2Q0FGaUI7RUFFakIscUNBRmlCO0UySHV1SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0FBNTFHWjtBeEhwWUk7RXdIa3VIUTtJQUVRO0VBNTFHbEI7QUFDRjtBQSsxR1k7RUFFSTtFQUNBO0VBQ0E7QUE5MUdoQjtBQWkyR1k7RUFDSTtNQUFBO1VBQUE7QUEvMUdoQjtBQWkyR2dCO0VBSEo7SUFJUTtRQUFBO1lBQUE7RUE5MUdsQjtBQUNGO0FBazJHUTtFQUNJO0VBQ0E7QUFoMkdaO0FBbTJHUTtFQUNJO0VBQ0E7RUFDQTtBQWoyR1o7QXhIL1pJO0V3SDZ2SEk7SUFNUTtJQUNBO0VBaDJHZDtBQUNGO0FBbTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHWjtBQXMyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcDJHWjtBeEh4Ykk7RXdIb3hISTtJQVdRO0lBQ0E7SUFDQSx5Qi9HL3lIUTtJK0dnekhSO0lBQ0E7RUFuMkdkO0FBQ0Y7QUFxMkdZO0VBbEJKO0lBbUJRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFsMkdkO0FBQ0Y7QUFvMkdZO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZ0IvR2gxSE07RStHaTFITjtFQUNBO0FBbDJHaEI7QUFvMkdnQjtFQVhKO0lBWVE7RUFqMkdsQjtBQUNGO0FBbzJHWTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWwyR2hCO0F4SHBlSTtFd0g4ekhROztJQVdRO0lBQ0E7RUFoMkdsQjtBQUNGO0FBazJHZ0I7O0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYy9HdDJIRztBK0d1Z0J2QjtBQWsyR2dCOztFQUNJO0VBQ0E7QUEvMUdwQjtBQWkyR29COztFQUNJLDZCdElwMEhJO0FzSXNlNUI7QUFrMkdnQjs7RUFDSTtBQS8xR3BCO0FBbTJHWTtFQUNJO0VBQ0E7RUFDQTtBQWoyR2hCO0FBbTJHZ0I7RUFDSTtVQUFBO0FBajJHcEI7QXhIdmdCSTtFd0h1MkhZO0lBSVE7WUFBQTtFQWgyR3RCO0FBQ0Y7QUFvMkdZO0VBQ0k7RUFDQTtBQWwyR2hCO0FBbzJHZ0I7RUFDSTtVQUFBO0FBbDJHcEI7QXhIbmhCSTtFd0hvM0hZO0lBSVE7WUFBQTtFQWoyR3RCO0FBQ0Y7QUFxMkdZO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtBQW4yR2hCO0FBcTJHZ0I7RUFDSTtVQUFBO0VBQ0E7QUFuMkdwQjtBQXUyR1k7RUFDSTtVQUFBO0FBcjJHaEI7QUF5MkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXYyR1o7QUF5MkdZO0VBQ0k7QUF2MkdoQjtBeEgzaEJJO0V3SHUzSEk7SUFlUTtFQXYyR2Q7QUFDRjtBQTAyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQi9HbjhIVTtBK0cybEJ0QjtBQTAyR1k7RUFDSTtBQXgyR2hCO0F4SDVpQkk7RXdIMDRISTtJQWNRO0VBeDJHZDtBQUNGO0FBMDJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtBQXgyR2hCO0FBMDJHZ0I7RUFDSTtFQUNBO0FBeDJHcEIsQzs7OztBdElubkJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUg4Tko7O0FySDNOQTtFQUNJO0FxSDhOSjs7QW5IcE9JO0VBREo7SUFFUTtFbUh3T047QUFDRjs7QW5Ick9BO0VBQ0k7RUFDQTtFQUNBO0FtSHdPSjtBbkh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUh5T047QUFDRjs7QW5IdE9BO0VBR1k7SUFDSTtJQUNBO0VtSHVPZDtFbkh6T1U7SUFDSTtJQUNBO0VtSDJPZDtFbkg3T1U7SUFDSTtJQUNBO0VtSCtPZDtFbkhqUFU7SUFDSTtJQUNBO0VtSG1QZDtFbkhyUFU7SUFDSTtJQUNBO0VtSHVQZDtFbkh6UFU7SUFDSTtJQUNBO0VtSDJQZDtFbkg3UFU7SUFDSTtJQUNBO0VtSCtQZDtFbkhqUVU7SUFDSTtJQUNBO0VtSG1RZDtFbkhyUVU7SUFDSTtJQUNBO0VtSHVRZDtFbkh6UVU7SUFDSTtJQUNBO0VtSDJRZDtFbkg3UVU7SUFDSTtJQUNBO0VtSCtRZDtFbkhqUlU7SUFDSTtJQUNBO0VtSG1SZDtFbkg5UUU7SUFDSTtFbUhnUk47QUFDRjtBbkgzUVE7RUFESjtJQUVRO0VtSDhRVjtBQUNGOztBbEhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUg2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZJNzFFZ0I7RXVJODFFaEIsY2hIbjVFUztFZ0hvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYUk7RUFDSTtFQUNBO0VBQ0E7QUE5MUdSLEM7Ozs7QXZJdllBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0g4Tko7O0F0SDNOQTtFQUNJO0FzSDhOSjs7QXBIcE9JO0VBREo7SUFFUTtFb0h3T047QUFDRjs7QXBIck9BO0VBQ0k7RUFDQTtFQUNBO0FvSHdPSjtBcEh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0h5T047QUFDRjs7QXBIdE9BO0VBR1k7SUFDSTtJQUNBO0VvSHVPZDtFcEh6T1U7SUFDSTtJQUNBO0VvSDJPZDtFcEg3T1U7SUFDSTtJQUNBO0VvSCtPZDtFcEhqUFU7SUFDSTtJQUNBO0VvSG1QZDtFcEhyUFU7SUFDSTtJQUNBO0VvSHVQZDtFcEh6UFU7SUFDSTtJQUNBO0VvSDJQZDtFcEg3UFU7SUFDSTtJQUNBO0VvSCtQZDtFcEhqUVU7SUFDSTtJQUNBO0VvSG1RZDtFcEhyUVU7SUFDSTtJQUNBO0VvSHVRZDtFcEh6UVU7SUFDSTtJQUNBO0VvSDJRZDtFcEg3UVU7SUFDSTtJQUNBO0VvSCtRZDtFcEhqUlU7SUFDSTtJQUNBO0VvSG1SZDtFcEg5UUU7SUFDSTtFb0hnUk47QUFDRjtBcEgzUVE7RUFESjtJQUVRO0VvSDhRVjtBQUNGOztBbkhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0g2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hJNzFFZ0I7RXdJODFFaEIsY2pIbjVFUztFaUhvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7QUE3MUdaO0FBZzJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGNqSGp1SFc7RWlIa3VIWDtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7QUE5MUdaO0FBZzJHWTtFQUVJO0VBQ0EsbUJqSHp1SE87RWlIMHVIUDtFQUNBO0VBQ0E7VUFBQTtBQS8xR2hCO0FBazJHWTtFQUNJO0VBQ0E7RUFDQTtBQWgyR2hCO0FBbTJHWTtFQUNJO0VBQ0E7RUFDQTtBQWoyR2hCO0FBbzJHWTtFQUNJO0FBbDJHaEIsQzs7OztBeElyYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1SDhOSjs7QXZIM05BO0VBQ0k7QXVIOE5KOztBckhwT0k7RUFESjtJQUVRO0VxSHdPTjtBQUNGOztBckhyT0E7RUFDSTtFQUNBO0VBQ0E7QXFId09KO0FySHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxSHlPTjtBQUNGOztBckh0T0E7RUFHWTtJQUNJO0lBQ0E7RXFIdU9kO0VySHpPVTtJQUNJO0lBQ0E7RXFIMk9kO0VySDdPVTtJQUNJO0lBQ0E7RXFIK09kO0VySGpQVTtJQUNJO0lBQ0E7RXFIbVBkO0VySHJQVTtJQUNJO0lBQ0E7RXFIdVBkO0VySHpQVTtJQUNJO0lBQ0E7RXFIMlBkO0VySDdQVTtJQUNJO0lBQ0E7RXFIK1BkO0VySGpRVTtJQUNJO0lBQ0E7RXFIbVFkO0VySHJRVTtJQUNJO0lBQ0E7RXFIdVFkO0VySHpRVTtJQUNJO0lBQ0E7RXFIMlFkO0VySDdRVTtJQUNJO0lBQ0E7RXFIK1FkO0VySGpSVTtJQUNJO0lBQ0E7RXFIbVJkO0VySDlRRTtJQUNJO0VxSGdSTjtBQUNGO0FySDNRUTtFQURKO0lBRVE7RXFIOFFWO0FBQ0Y7O0FwSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FtSDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekk3MUVnQjtFeUk4MUVoQixjbEhuNUVTO0VrSG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY2xIanVIVztBa0hvWXZCO0FBZzJHUTtFQUNJLGtCcEVodkhZO0VvRWl2SFosc0JsSDV1SFU7RWtINnVIVjtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGNsSDl1SFc7QWtIZ1p2QjtBQWcyR1k7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO0VBQ0E7QUE5MUdoQjtBQSsxR2dCO0VBQ0ksa0JwRS92SEk7RW9FZ3dISixpQ2xIdnRISTtFa0h3dEhKLGNsSGh3SEE7RWtIaXdIQTtFQUNBO0VBQ0E7QUE3MUdwQjtBQTgxR29CO0VBQ0ksbUJsSHJ3SEo7RWtIc3dISSxXbEhsd0hGO0VrSG13SEU7QUE1MUd4QixDOzs7O0F6STVhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdIOE5KOztBeEgzTkE7RUFDSTtBd0g4Tko7O0F0SHBPSTtFQURKO0lBRVE7RXNId09OO0FBQ0Y7O0F0SHJPQTtFQUNJO0VBQ0E7RUFDQTtBc0h3T0o7QXRIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNIeU9OO0FBQ0Y7O0F0SHRPQTtFQUdZO0lBQ0k7SUFDQTtFc0h1T2Q7RXRIek9VO0lBQ0k7SUFDQTtFc0gyT2Q7RXRIN09VO0lBQ0k7SUFDQTtFc0grT2Q7RXRIalBVO0lBQ0k7SUFDQTtFc0htUGQ7RXRIclBVO0lBQ0k7SUFDQTtFc0h1UGQ7RXRIelBVO0lBQ0k7SUFDQTtFc0gyUGQ7RXRIN1BVO0lBQ0k7SUFDQTtFc0grUGQ7RXRIalFVO0lBQ0k7SUFDQTtFc0htUWQ7RXRIclFVO0lBQ0k7SUFDQTtFc0h1UWQ7RXRIelFVO0lBQ0k7SUFDQTtFc0gyUWQ7RXRIN1FVO0lBQ0k7SUFDQTtFc0grUWQ7RXRIalJVO0lBQ0k7SUFDQTtFc0htUmQ7RXRIOVFFO0lBQ0k7RXNIZ1JOO0FBQ0Y7QXRIM1FRO0VBREo7SUFFUTtFc0g4UVY7QUFDRjs7QXJIblRBOztFQUFBO0FDQUE7O0VBQUE7QW9INkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxSTcxRWdCO0UwSTgxRWhCLGNuSG41RVM7RW1IbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUE3MUdSLEM7Ozs7QTFJdllBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBeUg4Tko7O0F6SDNOQTtFQUNJO0F5SDhOSjs7QXZIcE9JO0VBREo7SUFFUTtFdUh3T047QUFDRjs7QXZIck9BO0VBQ0k7RUFDQTtFQUNBO0F1SHdPSjtBdkh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFdUh5T047QUFDRjs7QXZIdE9BO0VBR1k7SUFDSTtJQUNBO0V1SHVPZDtFdkh6T1U7SUFDSTtJQUNBO0V1SDJPZDtFdkg3T1U7SUFDSTtJQUNBO0V1SCtPZDtFdkhqUFU7SUFDSTtJQUNBO0V1SG1QZDtFdkhyUFU7SUFDSTtJQUNBO0V1SHVQZDtFdkh6UFU7SUFDSTtJQUNBO0V1SDJQZDtFdkg3UFU7SUFDSTtJQUNBO0V1SCtQZDtFdkhqUVU7SUFDSTtJQUNBO0V1SG1RZDtFdkhyUVU7SUFDSTtJQUNBO0V1SHVRZDtFdkh6UVU7SUFDSTtJQUNBO0V1SDJRZDtFdkg3UVU7SUFDSTtJQUNBO0V1SCtRZDtFdkhqUlU7SUFDSTtJQUNBO0V1SG1SZDtFdkg5UUU7SUFDSTtFdUhnUk47QUFDRjtBdkgzUVE7RUFESjtJQUVRO0V1SDhRVjtBQUNGOztBdEhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBcUg2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzNJNzFFZ0I7RTJJODFFaEIsY3BIbjVFUztFb0hvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBajhDSTtFQUNJO0FBaDVEUjtBQWs1RFE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFoNURaO0FBbTVEUTtFQUNJO0VBQ0E7QUFqNURaO0FBbTVEWTtFQUNJLHlCcEgzeEVPO0FvSDBZdkI7QUE4MEdRO0VBQ0k7RUFDQSxZeEl2dEhrQjtBd0kyWTlCO0FBKzBHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUE3MEdaO0FBZzFHUTtFaEk5dEhKLHNEQUZpQjtFQUVqQiw4Q0FGaUI7RWdJa3VIVDtFQUNBO0VBQ0E7RUFDQSxrQnRFbnZIWTtFc0VvdkhaO1VBQUE7QUE5MEdaO0FBZzFHWTtFQUNJO0VBQ0E7QUE5MEdoQjtBQWkxR1k7RUFDSTtFQUNBLHlCcEgvdUhPO0FvSGdhdkI7QUFtMUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCcEhsd0hVO0VvSG13SFY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0FBajFHWjtBQW8xR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3BIN3dIVztBb0gyYnZCO0FBbzFHWTtFQUVJLGNwSGp4SE87QW9IOGJ2QixDOzs7O0EzSXpjQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBIOE5KOztBMUgzTkE7RUFDSTtBMEg4Tko7O0F4SHBPSTtFQURKO0lBRVE7RXdId09OO0FBQ0Y7O0F4SHJPQTtFQUNJO0VBQ0E7RUFDQTtBd0h3T0o7QXhIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdIeU9OO0FBQ0Y7O0F4SHRPQTtFQUdZO0lBQ0k7SUFDQTtFd0h1T2Q7RXhIek9VO0lBQ0k7SUFDQTtFd0gyT2Q7RXhIN09VO0lBQ0k7SUFDQTtFd0grT2Q7RXhIalBVO0lBQ0k7SUFDQTtFd0htUGQ7RXhIclBVO0lBQ0k7SUFDQTtFd0h1UGQ7RXhIelBVO0lBQ0k7SUFDQTtFd0gyUGQ7RXhIN1BVO0lBQ0k7SUFDQTtFd0grUGQ7RXhIalFVO0lBQ0k7SUFDQTtFd0htUWQ7RXhIclFVO0lBQ0k7SUFDQTtFd0h1UWQ7RXhIelFVO0lBQ0k7SUFDQTtFd0gyUWQ7RXhIN1FVO0lBQ0k7SUFDQTtFd0grUWQ7RXhIalJVO0lBQ0k7SUFDQTtFd0htUmQ7RXhIOVFFO0lBQ0k7RXdIZ1JOO0FBQ0Y7QXhIM1FRO0VBREo7SUFFUTtFd0g4UVY7QUFDRjs7QXZIblRBOztFQUFBO0FDQUE7O0VBQUE7QXNINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1STcxRWdCO0U0STgxRWhCLGNySG41RVM7RXFIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0ksV3JIOXRIVTtFcUgrdEhWO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJO0VBQ0E7QUEvMUdaO0FBazJHUTtFQUNJO0VBQ0E7QUFoMkdaO0FBbTJHUTtFQUVJO0FBbDJHWjtBQW8yR1k7RUFDSTtBQWwyR2hCO0FBczJHUTtFQUNJO0FBcDJHWixDOzs7O0E1SXhaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTJIOE5KOztBM0gzTkE7RUFDSTtBMkg4Tko7O0F6SHBPSTtFQURKO0lBRVE7RXlId09OO0FBQ0Y7O0F6SHJPQTtFQUNJO0VBQ0E7RUFDQTtBeUh3T0o7QXpIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXlIeU9OO0FBQ0Y7O0F6SHRPQTtFQUdZO0lBQ0k7SUFDQTtFeUh1T2Q7RXpIek9VO0lBQ0k7SUFDQTtFeUgyT2Q7RXpIN09VO0lBQ0k7SUFDQTtFeUgrT2Q7RXpIalBVO0lBQ0k7SUFDQTtFeUhtUGQ7RXpIclBVO0lBQ0k7SUFDQTtFeUh1UGQ7RXpIelBVO0lBQ0k7SUFDQTtFeUgyUGQ7RXpIN1BVO0lBQ0k7SUFDQTtFeUgrUGQ7RXpIalFVO0lBQ0k7SUFDQTtFeUhtUWQ7RXpIclFVO0lBQ0k7SUFDQTtFeUh1UWQ7RXpIelFVO0lBQ0k7SUFDQTtFeUgyUWQ7RXpIN1FVO0lBQ0k7SUFDQTtFeUgrUWQ7RXpIalJVO0lBQ0k7SUFDQTtFeUhtUmQ7RXpIOVFFO0lBQ0k7RXlIZ1JOO0FBQ0Y7QXpIM1FRO0VBREo7SUFFUTtFeUg4UVY7QUFDRjs7QXhIblRBOztFQUFBO0FDQUE7O0VBQUE7QXVINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3STcxRWdCO0U2STgxRWhCLGN0SG41RVM7RXNIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBL0hyckhJO0UrSGtzSEk7SUFFUTtFQTkxR2Q7QUFDRjtBL0h2V0k7RStId3NISTtJQUVRO0VBLzFHZDtBQUNGO0FBazJHUTtFQUNJO0FBaDJHWjtBL0gvV0k7RStIaXRIUTtJQUVRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EseUJ0SHZ1SEk7SXNId3VISjtZQUFBO0VBaDJHbEI7QUFDRixDOzs7O0E3STVaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRIOE5KOztBNUgzTkE7RUFDSTtBNEg4Tko7O0ExSHBPSTtFQURKO0lBRVE7RTBId09OO0FBQ0Y7O0ExSHJPQTtFQUNJO0VBQ0E7RUFDQTtBMEh3T0o7QTFIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBIeU9OO0FBQ0Y7O0ExSHRPQTtFQUdZO0lBQ0k7SUFDQTtFMEh1T2Q7RTFIek9VO0lBQ0k7SUFDQTtFMEgyT2Q7RTFIN09VO0lBQ0k7SUFDQTtFMEgrT2Q7RTFIalBVO0lBQ0k7SUFDQTtFMEhtUGQ7RTFIclBVO0lBQ0k7SUFDQTtFMEh1UGQ7RTFIelBVO0lBQ0k7SUFDQTtFMEgyUGQ7RTFIN1BVO0lBQ0k7SUFDQTtFMEgrUGQ7RTFIalFVO0lBQ0k7SUFDQTtFMEhtUWQ7RTFIclFVO0lBQ0k7SUFDQTtFMEh1UWQ7RTFIelFVO0lBQ0k7SUFDQTtFMEgyUWQ7RTFIN1FVO0lBQ0k7SUFDQTtFMEgrUWQ7RTFIalJVO0lBQ0k7SUFDQTtFMEhtUmQ7RTFIOVFFO0lBQ0k7RTBIZ1JOO0FBQ0Y7QTFIM1FRO0VBREo7SUFFUTtFMEg4UVY7QUFDRjs7QXpIblRBOztFQUFBO0FDQUE7O0VBQUE7QXdINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5STcxRWdCO0U4STgxRWhCLGN2SG41RVM7RXVIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWNZO0VBQ0k7TUFBQTtVQUFBO0FBLzFHaEI7QUFrMkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDJHaEI7QUFvMkdRO0VBQ0k7QUFsMkdaO0FBcTJHZ0I7RUFDSSxjdkh0dEhJO0F1SG1YeEI7QUFzMkdnQjtFQUNJLGN2SGp1SEU7QXVINlh0QixDOzs7O0E5SXRaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTZIOE5KOztBN0gzTkE7RUFDSTtBNkg4Tko7O0EzSHBPSTtFQURKO0lBRVE7RTJId09OO0FBQ0Y7O0EzSHJPQTtFQUNJO0VBQ0E7RUFDQTtBMkh3T0o7QTNIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTJIeU9OO0FBQ0Y7O0EzSHRPQTtFQUdZO0lBQ0k7SUFDQTtFMkh1T2Q7RTNIek9VO0lBQ0k7SUFDQTtFMkgyT2Q7RTNIN09VO0lBQ0k7SUFDQTtFMkgrT2Q7RTNIalBVO0lBQ0k7SUFDQTtFMkhtUGQ7RTNIclBVO0lBQ0k7SUFDQTtFMkh1UGQ7RTNIelBVO0lBQ0k7SUFDQTtFMkgyUGQ7RTNIN1BVO0lBQ0k7SUFDQTtFMkgrUGQ7RTNIalFVO0lBQ0k7SUFDQTtFMkhtUWQ7RTNIclFVO0lBQ0k7SUFDQTtFMkh1UWQ7RTNIelFVO0lBQ0k7SUFDQTtFMkgyUWQ7RTNIN1FVO0lBQ0k7SUFDQTtFMkgrUWQ7RTNIalJVO0lBQ0k7SUFDQTtFMkhtUmQ7RTNIOVFFO0lBQ0k7RTJIZ1JOO0FBQ0Y7QTNIM1FRO0VBREo7SUFFUTtFMkg4UVY7QUFDRjs7QTFIblRBOztFQUFBO0FDQUE7O0VBQUE7QXlINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MvSTcxRWdCO0UrSTgxRWhCLGN4SG41RVM7RXdIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBaklyckhJO0VpSWtzSEk7SUFFUTtFQTkxR2Q7QUFDRjtBakl2V0k7RWlJd3NISTtJQUVRO0VBLzFHZDtBQUNGO0FBazJHUTtFQUNJO0FBaDJHWjtBakkvV0k7RWlJaXRIUTtJQUVRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EseUJ4SHZ1SEk7SXdId3VISjtZQUFBO0VBaDJHbEI7QUFDRixDOzs7O0EvSTVaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThIOE5KOztBOUgzTkE7RUFDSTtBOEg4Tko7O0E1SHBPSTtFQURKO0lBRVE7RTRId09OO0FBQ0Y7O0E1SHJPQTtFQUNJO0VBQ0E7RUFDQTtBNEh3T0o7QTVIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRIeU9OO0FBQ0Y7O0E1SHRPQTtFQUdZO0lBQ0k7SUFDQTtFNEh1T2Q7RTVIek9VO0lBQ0k7SUFDQTtFNEgyT2Q7RTVIN09VO0lBQ0k7SUFDQTtFNEgrT2Q7RTVIalBVO0lBQ0k7SUFDQTtFNEhtUGQ7RTVIclBVO0lBQ0k7SUFDQTtFNEh1UGQ7RTVIelBVO0lBQ0k7SUFDQTtFNEgyUGQ7RTVIN1BVO0lBQ0k7SUFDQTtFNEgrUGQ7RTVIalFVO0lBQ0k7SUFDQTtFNEhtUWQ7RTVIclFVO0lBQ0k7SUFDQTtFNEh1UWQ7RTVIelFVO0lBQ0k7SUFDQTtFNEgyUWQ7RTVIN1FVO0lBQ0k7SUFDQTtFNEgrUWQ7RTVIalJVO0lBQ0k7SUFDQTtFNEhtUmQ7RTVIOVFFO0lBQ0k7RTRIZ1JOO0FBQ0Y7QTVIM1FRO0VBREo7SUFFUTtFNEg4UVY7QUFDRjs7QTNIblRBOztFQUFBO0FDQUE7O0VBQUE7QTBINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoSjcxRWdCO0VnSjgxRWhCLGN6SG41RVM7RXlIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtBQTkxR1o7QUFrMkdZO0VBQ0k7TUFBQTtVQUFBO0FBaDJHaEI7QUFtMkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHaEIsQzs7OztBaEpqWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0ErSDhOSjs7QS9IM05BO0VBQ0k7QStIOE5KOztBN0hwT0k7RUFESjtJQUVRO0U2SHdPTjtBQUNGOztBN0hyT0E7RUFDSTtFQUNBO0VBQ0E7QTZId09KO0E3SHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U2SHlPTjtBQUNGOztBN0h0T0E7RUFHWTtJQUNJO0lBQ0E7RTZIdU9kO0U3SHpPVTtJQUNJO0lBQ0E7RTZIMk9kO0U3SDdPVTtJQUNJO0lBQ0E7RTZIK09kO0U3SGpQVTtJQUNJO0lBQ0E7RTZIbVBkO0U3SHJQVTtJQUNJO0lBQ0E7RTZIdVBkO0U3SHpQVTtJQUNJO0lBQ0E7RTZIMlBkO0U3SDdQVTtJQUNJO0lBQ0E7RTZIK1BkO0U3SGpRVTtJQUNJO0lBQ0E7RTZIbVFkO0U3SHJRVTtJQUNJO0lBQ0E7RTZIdVFkO0U3SHpRVTtJQUNJO0lBQ0E7RTZIMlFkO0U3SDdRVTtJQUNJO0lBQ0E7RTZIK1FkO0U3SGpSVTtJQUNJO0lBQ0E7RTZIbVJkO0U3SDlRRTtJQUNJO0U2SGdSTjtBQUNGO0E3SDNRUTtFQURKO0lBRVE7RTZIOFFWO0FBQ0Y7O0E1SG5UQTs7RUFBQTtBQ0FBOztFQUFBO0EySDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDako3MUVnQjtFaUo4MUVoQixjMUhuNUVTO0UwSG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJLHlCMUhudEhlO0UwSG90SGY7RUFDQSxrQjVFcHVIZ0I7RTRFcXVIaEI7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1o7QW5JN1dJO0VtSXVzSEk7SUFNUTtJQUNBO0VBNTFHZDtBQUNGO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtBQTkxR1o7QUFpMkdRO0VBQ0k7RUFDQTtFQUNBO0FBLzFHWjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjMUgvdkhXO0UwSGd3SFg7QUFoMkdaLEM7Ozs7QWpKMWFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBZ0k4Tko7O0FoSTNOQTtFQUNJO0FnSThOSjs7QTlIcE9JO0VBREo7SUFFUTtFOEh3T047QUFDRjs7QTlIck9BO0VBQ0k7RUFDQTtFQUNBO0E4SHdPSjtBOUh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFOEh5T047QUFDRjs7QTlIdE9BO0VBR1k7SUFDSTtJQUNBO0U4SHVPZDtFOUh6T1U7SUFDSTtJQUNBO0U4SDJPZDtFOUg3T1U7SUFDSTtJQUNBO0U4SCtPZDtFOUhqUFU7SUFDSTtJQUNBO0U4SG1QZDtFOUhyUFU7SUFDSTtJQUNBO0U4SHVQZDtFOUh6UFU7SUFDSTtJQUNBO0U4SDJQZDtFOUg3UFU7SUFDSTtJQUNBO0U4SCtQZDtFOUhqUVU7SUFDSTtJQUNBO0U4SG1RZDtFOUhyUVU7SUFDSTtJQUNBO0U4SHVRZDtFOUh6UVU7SUFDSTtJQUNBO0U4SDJRZDtFOUg3UVU7SUFDSTtJQUNBO0U4SCtRZDtFOUhqUlU7SUFDSTtJQUNBO0U4SG1SZDtFOUg5UUU7SUFDSTtFOEhnUk47QUFDRjtBOUgzUVE7RUFESjtJQUVRO0U4SDhRVjtBQUNGOztBN0huVEE7O0VBQUE7QUNBQTs7RUFBQTtBNEg2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2xKNzFFZ0I7RWtKODFFaEIsYzNIbjVFUztFMkhvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSx5QjNIbnRIZTtFMkhvdEhmO0VBQ0Esa0I3RXB1SGdCO0U2RXF1SGhCO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7QUE3MUdaO0FwSTdXSTtFb0l1c0hJO0lBTVE7SUFDQTtFQTUxR2Q7QUFDRjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7QUE3MUdaO0FBZzJHUTtFQUNJO0FBOTFHWixDOzs7O0FsSjNaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlJOE5KOztBakkzTkE7RUFDSTtBaUk4Tko7O0EvSHBPSTtFQURKO0lBRVE7RStId09OO0FBQ0Y7O0EvSHJPQTtFQUNJO0VBQ0E7RUFDQTtBK0h3T0o7QS9IdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStIeU9OO0FBQ0Y7O0EvSHRPQTtFQUdZO0lBQ0k7SUFDQTtFK0h1T2Q7RS9Iek9VO0lBQ0k7SUFDQTtFK0gyT2Q7RS9IN09VO0lBQ0k7SUFDQTtFK0grT2Q7RS9IalBVO0lBQ0k7SUFDQTtFK0htUGQ7RS9IclBVO0lBQ0k7SUFDQTtFK0h1UGQ7RS9IelBVO0lBQ0k7SUFDQTtFK0gyUGQ7RS9IN1BVO0lBQ0k7SUFDQTtFK0grUGQ7RS9IalFVO0lBQ0k7SUFDQTtFK0htUWQ7RS9IclFVO0lBQ0k7SUFDQTtFK0h1UWQ7RS9IelFVO0lBQ0k7SUFDQTtFK0gyUWQ7RS9IN1FVO0lBQ0k7SUFDQTtFK0grUWQ7RS9IalJVO0lBQ0k7SUFDQTtFK0htUmQ7RS9IOVFFO0lBQ0k7RStIZ1JOO0FBQ0Y7QS9IM1FRO0VBREo7SUFFUTtFK0g4UVY7QUFDRjs7QTlIblRBOztFQUFBO0FDQUE7O0VBQUE7QTZINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuSjcxRWdCO0VtSjgxRWhCLGM1SG41RVM7RTRIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTJLQTtFQUNJO0lBQ0k7WUFBQTtFQTUvR047RUE4L0dFO0lBQ0k7WUFBQTtFQTUvR047QUFDRjtBQXMvR0E7RUFDSTtJQUNJO1lBQUE7RUE1L0dOO0VBOC9HRTtJQUNJO1lBQUE7RUE1L0dOO0FBQ0Y7QUF1MUdJO0VBQ0k7QUFyMUdSO0FBdzFHWTs7RXZJanVIUjtFQUNBO0VBQ0E7QXVJNllKO0FBdTFHWTtFdkkzdEhSO0VBQ0E7RUFDQTtBdUl1WUo7QUF3MUdZOztFdkk1dUhSO0VBQ0E7RUFDQTtBdUl3Wko7QUF1MUdZO0VBQ0ksYzVIdHRIUTtBNEhpWXhCO0FySWpZSTtFcUkwdEhJO0lBR1E7SUFDQTtFQXgxR2Q7RUEwMUdjO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBeDFHbEI7QUFDRjtBQTIxR1k7RUFDSTtFQUNBO0FBejFHaEI7QUE0MUdZO0VBQ0k7QUExMUdoQjtBQTYxR1k7RUFDSTtFQUNBO0FBMzFHaEI7QXJJN1pJO0VxSTR2SEk7SUFFUTtJQUNBO0VBNzFHZDtBQUNGO0FBZzJHUTtFdklweEhKO0VBQ0E7RUFDQTtFdUlxeEhRO0VBQ0Esc0I1SGx5SFU7RTRIbXlIVjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdaO0FBKzFHWTtFeEkveEhSLDZDQUZpQjtFQUVqQixxQ0FGaUI7RUNDakI7RUFDQTtFQUNBO0V1SWt5SFk7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1MUdoQjtBQWcyR1E7RXhJL3lISiw2Q0FGaUI7RUFFakIscUNBRmlCO0VDVmpCO0VBQ0E7RUFDQTtFdUk2ekhRO0FBNzFHWjtBQWcyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBOTFHWjtBQWcyR1k7RUFDSSxjNUg5MEhLO0E0SGdmckI7QUFrMkdRO0V2SW4wSEo7RUFDQTtFQUNBO0V1SW0wSFE7RUFDQTtFQUNBO0VBQ0EsWXRGcjFIUztBc0Z1ZnJCO0FBZzJHWTtFdklyMUhSO0VBQ0E7RUFDQTtFdUlzMUhZO1VBQUE7QUE3MUdoQjtBQWcyR1k7RXZJaDFIUjtFQUNBO0VBQ0E7RUREQSx5Q0FGaUI7RUFFakIsaUNBRmlCO0V3SXExSEw7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtBQTcxR2hCO0FBKzFHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7QUE3MUdwQixDOzs7O0FuSjVoQkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrSThOSjs7QWxJM05BO0VBQ0k7QWtJOE5KOztBaElwT0k7RUFESjtJQUVRO0VnSXdPTjtBQUNGOztBaElyT0E7RUFDSTtFQUNBO0VBQ0E7QWdJd09KO0FoSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnSXlPTjtBQUNGOztBaEl0T0E7RUFHWTtJQUNJO0lBQ0E7RWdJdU9kO0VoSXpPVTtJQUNJO0lBQ0E7RWdJMk9kO0VoSTdPVTtJQUNJO0lBQ0E7RWdJK09kO0VoSWpQVTtJQUNJO0lBQ0E7RWdJbVBkO0VoSXJQVTtJQUNJO0lBQ0E7RWdJdVBkO0VoSXpQVTtJQUNJO0lBQ0E7RWdJMlBkO0VoSTdQVTtJQUNJO0lBQ0E7RWdJK1BkO0VoSWpRVTtJQUNJO0lBQ0E7RWdJbVFkO0VoSXJRVTtJQUNJO0lBQ0E7RWdJdVFkO0VoSXpRVTtJQUNJO0lBQ0E7RWdJMlFkO0VoSTdRVTtJQUNJO0lBQ0E7RWdJK1FkO0VoSWpSVTtJQUNJO0lBQ0E7RWdJbVJkO0VoSTlRRTtJQUNJO0VnSWdSTjtBQUNGO0FoSTNRUTtFQURKO0lBRVE7RWdJOFFWO0FBQ0Y7O0EvSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4SDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEo3MUVnQjtFb0o4MUVoQixjN0huNUVTO0U2SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJLGM3SHh0SGU7QTZIMlh2QjtBQTgxR1E7RUFDSSxjN0h6dEhXO0E2SDZYdkIsQzs7OztBcEp4WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FtSThOSjs7QW5JM05BO0VBQ0k7QW1JOE5KOztBaklwT0k7RUFESjtJQUVRO0VpSXdPTjtBQUNGOztBaklyT0E7RUFDSTtFQUNBO0VBQ0E7QWlJd09KO0FqSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VpSXlPTjtBQUNGOztBakl0T0E7RUFHWTtJQUNJO0lBQ0E7RWlJdU9kO0VqSXpPVTtJQUNJO0lBQ0E7RWlJMk9kO0VqSTdPVTtJQUNJO0lBQ0E7RWlJK09kO0VqSWpQVTtJQUNJO0lBQ0E7RWlJbVBkO0VqSXJQVTtJQUNJO0lBQ0E7RWlJdVBkO0VqSXpQVTtJQUNJO0lBQ0E7RWlJMlBkO0VqSTdQVTtJQUNJO0lBQ0E7RWlJK1BkO0VqSWpRVTtJQUNJO0lBQ0E7RWlJbVFkO0VqSXJRVTtJQUNJO0lBQ0E7RWlJdVFkO0VqSXpRVTtJQUNJO0lBQ0E7RWlJMlFkO0VqSTdRVTtJQUNJO0lBQ0E7RWlJK1FkO0VqSWpSVTtJQUNJO0lBQ0E7RWlJbVJkO0VqSTlRRTtJQUNJO0VpSWdSTjtBQUNGO0FqSTNRUTtFQURKO0lBRVE7RWlJOFFWO0FBQ0Y7O0FoSW5UQTs7RUFBQTtBQ0FBOztFQUFBO0ErSDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcko3MUVnQjtFcUo4MUVoQixjOUhuNUVTO0U4SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1IsQzs7OztBckp2WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2RDhOSjs7QTdEM05BO0VBQ0k7QTZEOE5KOztBM0RwT0k7RUFESjtJQUVRO0UyRHdPTjtBQUNGOztBM0RyT0E7RUFDSTtFQUNBO0VBQ0E7QTJEd09KO0EzRHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UyRHlPTjtBQUNGOztBM0R0T0E7RUFHWTtJQUNJO0lBQ0E7RTJEdU9kO0UzRHpPVTtJQUNJO0lBQ0E7RTJEMk9kO0UzRDdPVTtJQUNJO0lBQ0E7RTJEK09kO0UzRGpQVTtJQUNJO0lBQ0E7RTJEbVBkO0UzRHJQVTtJQUNJO0lBQ0E7RTJEdVBkO0UzRHpQVTtJQUNJO0lBQ0E7RTJEMlBkO0UzRDdQVTtJQUNJO0lBQ0E7RTJEK1BkO0UzRGpRVTtJQUNJO0lBQ0E7RTJEbVFkO0UzRHJRVTtJQUNJO0lBQ0E7RTJEdVFkO0UzRHpRVTtJQUNJO0lBQ0E7RTJEMlFkO0UzRDdRVTtJQUNJO0lBQ0E7RTJEK1FkO0UzRGpSVTtJQUNJO0lBQ0E7RTJEbVJkO0UzRDlRRTtJQUNJO0UyRGdSTjtBQUNGO0EzRDNRUTtFQURKO0lBRVE7RTJEOFFWO0FBQ0Y7O0ExRG5UQTs7RUFBQTtBQ0FBOztFQUFBO0F5RDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0U3MUVnQjtFK0U4MUVoQixjeERuNUVTO0V3RG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSSx5QnhEdHRIVztFd0R1dEhYO0FBNzFHWjtBQWcyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjeERsdUhXO0V3RG11SFg7QUE5MUdaO0FBaTJHUTtFQUNJLGN4RHh1SFc7RXdEeXVIWDtFQUNBO0FBLzFHWixDOzs7O0EvRXJaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9JOE5KOztBcEkzTkE7RUFDSTtBb0k4Tko7O0FsSXBPSTtFQURKO0lBRVE7RWtJd09OO0FBQ0Y7O0FsSXJPQTtFQUNJO0VBQ0E7RUFDQTtBa0l3T0o7QWxJdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtJeU9OO0FBQ0Y7O0FsSXRPQTtFQUdZO0lBQ0k7SUFDQTtFa0l1T2Q7RWxJek9VO0lBQ0k7SUFDQTtFa0kyT2Q7RWxJN09VO0lBQ0k7SUFDQTtFa0krT2Q7RWxJalBVO0lBQ0k7SUFDQTtFa0ltUGQ7RWxJclBVO0lBQ0k7SUFDQTtFa0l1UGQ7RWxJelBVO0lBQ0k7SUFDQTtFa0kyUGQ7RWxJN1BVO0lBQ0k7SUFDQTtFa0krUGQ7RWxJalFVO0lBQ0k7SUFDQTtFa0ltUWQ7RWxJclFVO0lBQ0k7SUFDQTtFa0l1UWQ7RWxJelFVO0lBQ0k7SUFDQTtFa0kyUWQ7RWxJN1FVO0lBQ0k7SUFDQTtFa0krUWQ7RWxJalJVO0lBQ0k7SUFDQTtFa0ltUmQ7RWxJOVFFO0lBQ0k7RWtJZ1JOO0FBQ0Y7QWxJM1FRO0VBREo7SUFFUTtFa0k4UVY7QUFDRjs7QWpJblRBOztFQUFBO0FDQUE7O0VBQUE7QWdJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0SjcxRWdCO0VzSjgxRWhCLGMvSG41RVM7RStIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0kseUIvSGx0SG1CO0UrSG10SG5CO0VBQ0E7RUFDQSxrQmpGcHVIb0I7QWlGd1l4QjtBQTgxR0k7RUFFSSxjL0g3dEhlO0UrSDh0SGY7QUE3MUdSO0FBZzJHSTs7RUFFSTtFQUNBLHdDdEoxckhvQjtFc0oyckhwQjtFQUNBO0FBOTFHUixDOzs7O0F0Sm5aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFJOE5KOztBckkzTkE7RUFDSTtBcUk4Tko7O0FuSXBPSTtFQURKO0lBRVE7RW1Jd09OO0FBQ0Y7O0FuSXJPQTtFQUNJO0VBQ0E7RUFDQTtBbUl3T0o7QW5JdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1JeU9OO0FBQ0Y7O0FuSXRPQTtFQUdZO0lBQ0k7SUFDQTtFbUl1T2Q7RW5Jek9VO0lBQ0k7SUFDQTtFbUkyT2Q7RW5JN09VO0lBQ0k7SUFDQTtFbUkrT2Q7RW5JalBVO0lBQ0k7SUFDQTtFbUltUGQ7RW5JclBVO0lBQ0k7SUFDQTtFbUl1UGQ7RW5JelBVO0lBQ0k7SUFDQTtFbUkyUGQ7RW5JN1BVO0lBQ0k7SUFDQTtFbUkrUGQ7RW5JalFVO0lBQ0k7SUFDQTtFbUltUWQ7RW5JclFVO0lBQ0k7SUFDQTtFbUl1UWQ7RW5JelFVO0lBQ0k7SUFDQTtFbUkyUWQ7RW5JN1FVO0lBQ0k7SUFDQTtFbUkrUWQ7RW5JalJVO0lBQ0k7SUFDQTtFbUltUmQ7RW5JOVFFO0lBQ0k7RW1JZ1JOO0FBQ0Y7QW5JM1FRO0VBREo7SUFFUTtFbUk4UVY7QUFDRjs7QWxJblRBOztFQUFBO0FDQUE7O0VBQUE7QWlJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2SjcxRWdCO0V1SjgxRWhCLGNoSW41RVM7RWdJbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0ksY2hJeHRIVztFZ0l5dEhYO0FBOTFHWjtBQWkyR1E7RUFDSTtBQS8xR1o7QUFrMkdRO0VBQ0k7QUFoMkdaO0FBbTJHUTtFQUNJO0FBajJHWixDOzs7O0F2Si9ZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNJOE5KOztBdEkzTkE7RUFDSTtBc0k4Tko7O0FwSXBPSTtFQURKO0lBRVE7RW9Jd09OO0FBQ0Y7O0FwSXJPQTtFQUNJO0VBQ0E7RUFDQTtBb0l3T0o7QXBJdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9JeU9OO0FBQ0Y7O0FwSXRPQTtFQUdZO0lBQ0k7SUFDQTtFb0l1T2Q7RXBJek9VO0lBQ0k7SUFDQTtFb0kyT2Q7RXBJN09VO0lBQ0k7SUFDQTtFb0krT2Q7RXBJalBVO0lBQ0k7SUFDQTtFb0ltUGQ7RXBJclBVO0lBQ0k7SUFDQTtFb0l1UGQ7RXBJelBVO0lBQ0k7SUFDQTtFb0kyUGQ7RXBJN1BVO0lBQ0k7SUFDQTtFb0krUGQ7RXBJalFVO0lBQ0k7SUFDQTtFb0ltUWQ7RXBJclFVO0lBQ0k7SUFDQTtFb0l1UWQ7RXBJelFVO0lBQ0k7SUFDQTtFb0kyUWQ7RXBJN1FVO0lBQ0k7SUFDQTtFb0krUWQ7RXBJalJVO0lBQ0k7SUFDQTtFb0ltUmQ7RXBJOVFFO0lBQ0k7RW9JZ1JOO0FBQ0Y7QXBJM1FRO0VBREo7SUFFUTtFb0k4UVY7QUFDRjs7QW5JblRBOztFQUFBO0FDQUE7O0VBQUE7QWtJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4SjcxRWdCO0V3SjgxRWhCLGNqSW41RVM7RWlJbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQ3J0SEE7O0VBQUE7QUNBQTs7RUFBQTtBQTJDQTs7Ozs7RUFBQTtBQzNDQTs7RUFBQTtBQ0FBOztFQUFBO0EvSVdJO0VBSWdCLGNnSmZGO0FMdVpsQjtBM0lqWWdCO0VBRVEsWWdKeEJOO0FMMFpsQjtBM0lwWWdCO0VBRVEsY2dKeEJOO0FMNlpsQjtBM0l2WWdCO0VBRVEsWWdKeEJOO0FMZ2FsQjtBM0kxWWdCO0VBRVEsZWdKeEJOO0FMbWFsQjtBM0k3WWdCO0VBRVEsU2dKeEJOO0FMc2FsQjtBM0loWmdCO0VBRVEsWWdKeEJOO0FMeWFsQjs7QTNJbFlJO0VBSWdCO0VBQ0EsZWdKNUNGO0FMOGFsQjtBM0kxWHlCO0VBRUQ7RUFDQSxhZ0p2RE47QUxrYmxCOztBM0k5WHlCO0VBRUQ7RUFDQSxlZ0p2RE47QUx1YmxCOztBM0luWXlCO0VBRUQ7RUFDQSxhZ0p2RE47QUw0YmxCOztBM0l4WXlCO0VBRUQ7RUFDQSxnQmdKdkROO0FMaWNsQjs7QTNJN1l5QjtFQUVEO0VBQ0EsVWdKdkROO0FMc2NsQjs7QTNJbFp5QjtFQUVEO0VBQ0EsYWdKdkROO0FMMmNsQjs7QTNJaGNJO0VBT29CLGtCZ0psQk47QUwrY2xCO0EzSXpiZ0I7RUFLWSxnQmdKM0JWO0FMa2RsQjtBM0k1YmdCO0VBS1ksa0JnSjNCVjtBTHFkbEI7QTNJL2JnQjtFQUtZLGdCZ0ozQlY7QUx3ZGxCO0EzSWxjZ0I7RUFLWSxtQmdKM0JWO0FMMmRsQjtBM0lyY2dCO0VBS1ksYWdKM0JWO0FMOGRsQjtBM0l4Y2dCO0VBS1ksZ0JnSjNCVjtBTGllbEI7O0EzSTFiSTtFQVFvQjtFQUNBLG1CZ0poRE47QUxzZWxCO0EzSWxieUI7RUFNRztFQUNBLGlCZ0ozRFY7QUwwZWxCOztBM0l0YnlCO0VBTUc7RUFDQSxtQmdKM0RWO0FMK2VsQjs7QTNJM2J5QjtFQU1HO0VBQ0EsaUJnSjNEVjtBTG9mbEI7O0EzSWhjeUI7RUFNRztFQUNBLG9CZ0ozRFY7QUx5ZmxCOztBM0lyY3lCO0VBTUc7RUFDQSxjZ0ozRFY7QUw4ZmxCOztBM0kxY3lCO0VBTUc7RUFDQSxpQmdKM0RWO0FMbWdCbEI7O0EzSXhmSTtFQU9vQixxQmdKbEJOO0FMdWdCbEI7QTNJamZnQjtFQUtZLG1CZ0ozQlY7QUwwZ0JsQjtBM0lwZmdCO0VBS1kscUJnSjNCVjtBTDZnQmxCO0EzSXZmZ0I7RUFLWSxtQmdKM0JWO0FMZ2hCbEI7QTNJMWZnQjtFQUtZLHNCZ0ozQlY7QUxtaEJsQjtBM0k3ZmdCO0VBS1ksZ0JnSjNCVjtBTHNoQmxCO0EzSWhnQmdCO0VBS1ksbUJnSjNCVjtBTHloQmxCOztBM0lsZkk7RUFRb0I7RUFDQSxzQmdKaEROO0FMOGhCbEI7QTNJMWV5QjtFQU1HO0VBQ0Esb0JnSjNEVjtBTGtpQmxCOztBM0k5ZXlCO0VBTUc7RUFDQSxzQmdKM0RWO0FMdWlCbEI7O0EzSW5meUI7RUFNRztFQUNBLG9CZ0ozRFY7QUw0aUJsQjs7QTNJeGZ5QjtFQU1HO0VBQ0EsdUJnSjNEVjtBTGlqQmxCOztBM0k3ZnlCO0VBTUc7RUFDQSxpQmdKM0RWO0FMc2pCbEI7O0EzSWxnQnlCO0VBTUc7RUFDQSxvQmdKM0RWO0FMMmpCbEI7O0EzSWhqQkk7RUFPb0IsbUJnSmxCTjtBTCtqQmxCO0EzSXppQmdCO0VBS1ksaUJnSjNCVjtBTGtrQmxCO0EzSTVpQmdCO0VBS1ksbUJnSjNCVjtBTHFrQmxCO0EzSS9pQmdCO0VBS1ksaUJnSjNCVjtBTHdrQmxCO0EzSWxqQmdCO0VBS1ksb0JnSjNCVjtBTDJrQmxCO0EzSXJqQmdCO0VBS1ksY2dKM0JWO0FMOGtCbEI7QTNJeGpCZ0I7RUFLWSxpQmdKM0JWO0FMaWxCbEI7O0EzSTFpQkk7RUFRb0I7RUFDQSxvQmdKaEROO0FMc2xCbEI7QTNJbGlCeUI7RUFNRztFQUNBLGtCZ0ozRFY7QUwwbEJsQjs7QTNJdGlCeUI7RUFNRztFQUNBLG9CZ0ozRFY7QUwrbEJsQjs7QTNJM2lCeUI7RUFNRztFQUNBLGtCZ0ozRFY7QUxvbUJsQjs7QTNJaGpCeUI7RUFNRztFQUNBLHFCZ0ozRFY7QUx5bUJsQjs7QTNJcmpCeUI7RUFNRztFQUNBLGVnSjNEVjtBTDhtQmxCOztBM0kxakJ5QjtFQU1HO0VBQ0Esa0JnSjNEVjtBTG1uQmxCOztBM0l4bUJJO0VBT29CLG9CZ0psQk47QUx1bkJsQjtBM0lqbUJnQjtFQUtZLGtCZ0ozQlY7QUwwbkJsQjtBM0lwbUJnQjtFQUtZLG9CZ0ozQlY7QUw2bkJsQjtBM0l2bUJnQjtFQUtZLGtCZ0ozQlY7QUxnb0JsQjtBM0kxbUJnQjtFQUtZLHFCZ0ozQlY7QUxtb0JsQjtBM0k3bUJnQjtFQUtZLGVnSjNCVjtBTHNvQmxCO0EzSWhuQmdCO0VBS1ksa0JnSjNCVjtBTHlvQmxCOztBM0lsbUJJO0VBUW9CO0VBQ0EscUJnSmhETjtBTDhvQmxCO0EzSTFsQnlCO0VBTUc7RUFDQSxtQmdKM0RWO0FMa3BCbEI7O0EzSTlsQnlCO0VBTUc7RUFDQSxxQmdKM0RWO0FMdXBCbEI7O0EzSW5tQnlCO0VBTUc7RUFDQSxtQmdKM0RWO0FMNHBCbEI7O0EzSXhtQnlCO0VBTUc7RUFDQSxzQmdKM0RWO0FMaXFCbEI7O0EzSTdtQnlCO0VBTUc7RUFDQSxnQmdKM0RWO0FMc3FCbEI7O0EzSWxuQnlCO0VBTUc7RUFDQSxtQmdKM0RWO0FMMnFCbEI7O0EzSWhxQkk7RUFPb0IsbUJnSmxCTjtFaEprQk0sb0JnSmxCTjtBTGdyQmxCO0EzSTFwQmdCO0VBS1ksaUJnSjNCVjtFaEoyQlUsa0JnSjNCVjtBTG9yQmxCO0EzSTlwQmdCO0VBS1ksbUJnSjNCVjtFaEoyQlUsb0JnSjNCVjtBTHdyQmxCO0EzSWxxQmdCO0VBS1ksaUJnSjNCVjtFaEoyQlUsa0JnSjNCVjtBTDRyQmxCO0EzSXRxQmdCO0VBS1ksb0JnSjNCVjtFaEoyQlUscUJnSjNCVjtBTGdzQmxCO0EzSTFxQmdCO0VBS1ksY2dKM0JWO0VoSjJCVSxlZ0ozQlY7QUxvc0JsQjtBM0k5cUJnQjtFQUtZLGlCZ0ozQlY7RWhKMkJVLGtCZ0ozQlY7QUx3c0JsQjs7QTNJanFCSTtFQVFvQjtFQUNBLG9CZ0poRE47RWhKK0NNO0VBQ0EscUJnSmhETjtBTCtzQmxCO0EzSTNwQnlCO0VBTUc7RUFDQSxrQmdKM0RWO0VoSjBEVTtFQUNBLG1CZ0ozRFY7QUxxdEJsQjs7QTNJanFCeUI7RUFNRztFQUNBLG9CZ0ozRFY7RWhKMERVO0VBQ0EscUJnSjNEVjtBTDR0QmxCOztBM0l4cUJ5QjtFQU1HO0VBQ0Esa0JnSjNEVjtFaEowRFU7RUFDQSxtQmdKM0RWO0FMbXVCbEI7O0EzSS9xQnlCO0VBTUc7RUFDQSxxQmdKM0RWO0VoSjBEVTtFQUNBLHNCZ0ozRFY7QUwwdUJsQjs7QTNJdHJCeUI7RUFNRztFQUNBLGVnSjNEVjtFaEowRFU7RUFDQSxnQmdKM0RWO0FMaXZCbEI7O0EzSTdyQnlCO0VBTUc7RUFDQSxrQmdKM0RWO0VoSjBEVTtFQUNBLG1CZ0ozRFY7QUx3dkJsQjs7QTNJN3VCSTtFQU9vQixrQmdKbEJOO0VoSmtCTSxxQmdKbEJOO0FMNnZCbEI7QTNJdnVCZ0I7RUFLWSxnQmdKM0JWO0VoSjJCVSxtQmdKM0JWO0FMaXdCbEI7QTNJM3VCZ0I7RUFLWSxrQmdKM0JWO0VoSjJCVSxxQmdKM0JWO0FMcXdCbEI7QTNJL3VCZ0I7RUFLWSxnQmdKM0JWO0VoSjJCVSxtQmdKM0JWO0FMeXdCbEI7QTNJbnZCZ0I7RUFLWSxtQmdKM0JWO0VoSjJCVSxzQmdKM0JWO0FMNndCbEI7QTNJdnZCZ0I7RUFLWSxhZ0ozQlY7RWhKMkJVLGdCZ0ozQlY7QUxpeEJsQjtBM0kzdkJnQjtFQUtZLGdCZ0ozQlY7RWhKMkJVLG1CZ0ozQlY7QUxxeEJsQjs7QTNJOXVCSTtFQVFvQjtFQUNBLG1CZ0poRE47RWhKK0NNO0VBQ0Esc0JnSmhETjtBTDR4QmxCO0EzSXh1QnlCO0VBTUc7RUFDQSxpQmdKM0RWO0VoSjBEVTtFQUNBLG9CZ0ozRFY7QUxreUJsQjs7QTNJOXVCeUI7RUFNRztFQUNBLG1CZ0ozRFY7RWhKMERVO0VBQ0Esc0JnSjNEVjtBTHl5QmxCOztBM0lydkJ5QjtFQU1HO0VBQ0EsaUJnSjNEVjtFaEowRFU7RUFDQSxvQmdKM0RWO0FMZ3pCbEI7O0EzSTV2QnlCO0VBTUc7RUFDQSxvQmdKM0RWO0VoSjBEVTtFQUNBLHVCZ0ozRFY7QUx1ekJsQjs7QTNJbndCeUI7RUFNRztFQUNBLGNnSjNEVjtFaEowRFU7RUFDQSxpQmdKM0RWO0FMOHpCbEI7O0EzSTF3QnlCO0VBTUc7RUFDQSxpQmdKM0RWO0VoSjBEVTtFQUNBLG9CZ0ozRFY7QUxxMEJsQjs7QUVqMEJJO0VoSkNBO0E4SW8wQko7O0FFajBCSTtFaEpIQTtBOEl3MEJKOztBRWowQkk7RUFDSTtBRm8wQlI7O0FFajBCSTtFQUNJO0FGbzBCUjs7QUVqMEJJO0VBQ0k7QUZvMEJSOztBRWowQkk7RUFDSSxjbkl4Qlk7QWlJNDFCcEI7O0FFajBCSTtFQUNJLGNuSW5CZTtBaUl1MUJ2Qjs7QUVqMEJJO0VBQ0k7QUZvMEJSOztBRW56Qkk7RUFDSSxjbklXZ0I7QWlJMnlCeEI7O0FFdnpCSTtFQUNJLGNuSVdnQjtBaUkreUJ4Qjs7QUUzekJJO0VBQ0ksY25JV2dCO0FpSW16QnhCOztBeEk3MkJJO0VBQ0k7RUFDQTtFQUNBO0F3SWczQlI7O0FHLzJCSTtFQUNJO0FIazNCUjs7QUcvMkJJO0VBQ0k7QUhrM0JSOztBRy8yQkk7RUFDSTtBSGszQlI7O0FNbDRCSTtFQUNJO0FOcTRCUjtBMUkzMUJJO0VnSnBDUTtJQU9ZO0VONDNCdEI7QUFDRjtBMUloMkJJO0VnSm5CZ0I7SUFPWTtFTmczQjlCO0FBQ0Y7QTFJcjJCSTtFZ0puQmdCO0lBT1k7RU5xM0I5QjtBQUNGO0ExSTEyQkk7RWdKbkJnQjtJQU9ZO0VOMDNCOUI7QUFDRjtBMUkvMkJJO0VnSm5CZ0I7SUFPWTtFTiszQjlCO0FBQ0Y7QTFJaDRCSTtFZ0pQZ0I7SUFHWTtFTnc0QjlCO0FBQ0Y7QTFJejNCSTtFZ0puQmdCO0lBT1k7RU55NEI5QjtBQUNGO0ExSTkzQkk7RWdKbkJnQjtJQU9ZO0VOODRCOUI7QUFDRjtBMUluNEJJO0VnSnBDUTtJQU9ZO0VObzZCdEI7QUFDRjtBMUl4NEJJO0VnSm5CZ0I7SUFPWTtFTnc1QjlCO0FBQ0Y7QTFJNzRCSTtFZ0puQmdCO0lBT1k7RU42NUI5QjtBQUNGO0ExSWw1Qkk7RWdKbkJnQjtJQU9ZO0VOazZCOUI7QUFDRjtBMUluNkJJO0VnSlBnQjtJQUdZO0VOMjZCOUI7QUFDRjtBMUk1NUJJO0VnSm5CZ0I7SUFPWTtFTjQ2QjlCO0FBQ0Y7QTFJajZCSTtFZ0puQmdCO0lBT1k7RU5pN0I5QjtBQUNGO0ExSXQ2Qkk7RWdKcENRO0lBT1k7RU51OEJ0QjtBQUNGO0ExSTM2Qkk7RWdKbkJnQjtJQU9ZO0VOMjdCOUI7QUFDRjtBMUloN0JJO0VnSm5CZ0I7SUFPWTtFTmc4QjlCO0FBQ0Y7QTFJajhCSTtFZ0pQZ0I7SUFHWTtFTnk4QjlCO0FBQ0Y7QTFJMTdCSTtFZ0puQmdCO0lBT1k7RU4wOEI5QjtBQUNGO0ExSS83Qkk7RWdKbkJnQjtJQU9ZO0VOKzhCOUI7QUFDRjtBMUlwOEJJO0VnSnBDUTtJQU9ZO0VOcStCdEI7QUFDRjtBMUl6OEJJO0VnSm5CZ0I7SUFPWTtFTnk5QjlCO0FBQ0Y7QTFJMTlCSTtFZ0pQZ0I7SUFHWTtFTmsrQjlCO0FBQ0Y7QTFJbjlCSTtFZ0puQmdCO0lBT1k7RU5tK0I5QjtBQUNGO0ExSXg5Qkk7RWdKbkJnQjtJQU9ZO0VOdytCOUI7QUFDRjtBMUk3OUJJO0VnSnBDUTtJQU9ZO0VOOC9CdEI7QUFDRjtBMUk5K0JJO0VnSlBnQjtJQUdZO0VOcy9COUI7QUFDRjtBMUluL0JJO0VnSnhCUTtJQUdZO0VONGdDdEI7QUFDRjtBMUk1K0JJO0VnSnBDUTtJQU9ZO0VONmdDdEI7QUFDRjtBMUlqL0JJO0VnSm5CZ0I7SUFPWTtFTmlnQzlCO0FBQ0Y7QTFJbGdDSTtFZ0pQZ0I7SUFHWTtFTjBnQzlCO0FBQ0Y7QTFJMy9CSTtFZ0pwQ1E7SUFPWTtFTjRoQ3RCO0FBQ0Y7QTFJaGdDSTtFZ0puQmdCO0lBT1k7RU5naEM5QjtBQUNGO0ExSWpoQ0k7RWdKUGdCO0lBR1k7RU55aEM5QjtBQUNGO0ExSTFnQ0k7RWdKbkJnQjtJQU9ZO0VOMGhDOUI7QUFDRjs7QU1saENJO0VsSnJDQTtFQUNBO0VBQ0E7QTRJMmpDSjs7QU1waENJO0VsSjlCQTtFQUNBO0VBQ0E7QTRJc2pDSjs7QU10aENJO0VBQ0k7QU55aENSOztBTXRoQ0k7RUFDSTtBTnloQ1I7O0FNdGhDSTtFQUNJO0FOeWhDUjs7QU10aENJO0VBQ0k7QU55aENSOztBTXRoQ0k7RUFDSTtBTnloQ1I7O0FNdGhDSTtFQUNJO0FOeWhDUjs7QU1yaENROzs7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QU53aENaO0ExSTFrQ0k7RWdKcURJO0lBRVE7SUFDQTtFTnVoQ2Q7QUFDRjtBMUlobENJO0VnSjRESTtJQUVRO0lBQ0E7RU5zaENkO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2VmZmVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3otaW5kZXguc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fYnJlYWtwb2ludC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19pbXBvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3Jlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19jb2xvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZWZmZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL192aXNpYmlsaXR5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19icmVha3BvaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL191aS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9faW1wb3J0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2FnZW50LXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9BZ2VudFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FnZW50LW5hdmlnYXRpb24vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3ByaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19hcnJvdy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2ltcG9ydC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0FnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY3VzdG9tZXItbGlzdC9jdXN0b21lci1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0FnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvYWdlbnQtY29udHJvbC1iYXIvYWdlbnQtY29udHJvbC1iYXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWl0ZW1zLWxpc3QvY2FydC1pdGVtcy1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jYXJ0LXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWNhcnQtaXRlbS9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvY29tbWVudC13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ29tbWVudFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbW1lbnQtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbW1lbnRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LWZvcm0vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbW1lbnQtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbW1lbnRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LXRocmVhZC1saXN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb21tZW50LXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Db21tZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdGFnLWxpc3Qvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbXBhbnktcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db21wYW55UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FkZHJlc3MtZGVsZXRlLW1lc3NhZ2Uvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbXBhbnktcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db21wYW55UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2J1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb21wYW55LXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ29tcGFueVBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvY29tcGFueS1wYWdlL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbXBhbnlQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb21wYW55LXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ29tcGFueVBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbXBhbnlVc2VyQWdlbnRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb21wYW55LXVzZXItbGlzdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVOb3RlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmVhZG9ubHktYnVuZGxlZC1ub3RlL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb25maWd1cmFibGUtYnVuZGxlLXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyYXRvci1idXR0b24vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJhdG9yLW1lc3NhZ2Uvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJhdG9yLXByb2R1Y3Qvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJlZC1idW5kbGUtdG90YWwvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VsZWN0ZWQtcHJvZHVjdC1saXN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb25maWd1cmFibGUtYnVuZGxlLXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3RlbXBsYXRlLWxpc3Qvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyZWQtYnVuZGxlL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Db25maWd1cmFibGVCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyLWRldGFpbC10YWJsZS9vcmRlci1kZXRhaWwtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2ZpbGUtbWFuYWdlci13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvRmlsZU1hbmFnZXJXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9maWxlLWRvd25sb2FkLWxpbmsvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvTXVsdGlDYXJ0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbWluaS1jYXJ0LXJhZGlvL21pbmktY2FydC1yYWRpby5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9QZXJzaXN0ZW50Q2FydFNoYXJlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdXJsLW1hc2stZ2VuZXJhdG9yL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1ByaWNlUHJvZHVjdFZvbHVtZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3ZvbHVtZS1wcmljZS92b2x1bWUtcHJpY2Uuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJpY2VQcm9kdWN0Vm9sdW1lV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdm9sdW1lLXByaWNlLXRhYmxlL3ZvbHVtZS1wcmljZS10YWJsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1idW5kbGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Byb2R1Y3RCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9idW5kbGUtaXRlbXMvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Byb2R1Y3QtZ3JvdXAtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Byb2R1Y3RHcm91cFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbG9yLXNlbGVjdG9yL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9wcm9kdWN0LWdyb3VwLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Qcm9kdWN0R3JvdXBXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3Rvci9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1ncm91cC13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvUHJvZHVjdEdyb3VwV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9wcm9kdWN0LWxhYmVsLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Qcm9kdWN0TGFiZWxXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9mbGFnL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RMYWJlbFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhYmVsLWdyb3VwL2xhYmVsLWdyb3VwLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1sYWJlbC13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvUHJvZHVjdExhYmVsV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdGFnL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fei1pbmRleC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0T3B0aW9uV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0L3Nob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0UGFja2FnaW5nVW5pdFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhY2thZ2luZy11bml0LWNhcnQvcGFja2FnaW5nLXVuaXQtY2FydC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1yZXZpZXctd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Byb2R1Y3RSZXZpZXdXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9yYXRpbmctc2VsZWN0b3Ivc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFNlYXJjaFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0vcHJvZHVjdC1xdWljay1hZGQtZm9ybS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1zZWFyY2gtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Byb2R1Y3RTZWFyY2hXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXNlYXJjaC1pdGVtL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RTZWFyY2hXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0cy1saXN0L3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUXVpY2tPcmRlclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9xdWljay1vcmRlci1mb3JtL3F1aWNrLW9yZGVyLWZvcm0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19yYWRpdXMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUXVpY2tPcmRlclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9xdWljay1vcmRlci1yb3cvcXVpY2stb3JkZXItcm93LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1F1aWNrT3JkZXJQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcXVpY2stb3JkZXItcm93LXBhcnRpYWwvcXVpY2stb3JkZXItcm93LXBhcnRpYWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUXVpY2tPcmRlclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9xdWljay1vcmRlci1yb3dzL3F1aWNrLW9yZGVyLXJvd3Muc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3F1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1F1b3RlUmVxdWVzdEFnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9yZXF1ZXN0LXN0YXR1cy9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2FsZXNDb25maWd1cmFibGVCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9vcmRlci1jb25maWd1cmVkLWJ1bmRsZS9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2FsZXNDb25maWd1cmFibGVCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9TYWxlc0NvbmZpZ3VyYWJsZUJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyZWQtY29uZmlndXJlZC1idW5kbGUvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3NhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1NhbGVzQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BwaW5nTGlzdE5vdGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zaG9wcGluZy1saXN0LW5vdGUtdG9nZ2xlci9zaG9wcGluZy1saXN0LW5vdGUtdG9nZ2xlci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wcGluZ0xpc3ROb3RlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hvcHBpbmctbGlzdC1ub3RlL3Nob3BwaW5nLWxpc3Qtbm90ZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wcGluZ0xpc3RQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hhcmUtbGlzdC9zaGFyZS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wcGluZy1saXN0LXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcHBpbmdMaXN0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Nob3BwaW5nLWxpc3Qvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcHBpbmdMaXN0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Nob3BwaW5nLWxpc3QtaW5mby9zaG9wcGluZy1saXN0LWluZm8uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3BwaW5nLWxpc3QtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wcGluZ0xpc3RQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hvcHBpbmctbGlzdC1tZXNzYWdlL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wcGluZy1saXN0LXBhZ2Uvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcHBpbmdMaXN0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Nob3BwaW5nLWxpc3Qtb3ZlcnZpZXcvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcHBpbmdMaXN0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Nob3BwaW5nLWxpc3QtcGVybWlzc2lvbi9zaG9wcGluZy1saXN0LXBlcm1pc3Npb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3BwaW5nLWxpc3QtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wcGluZ0xpc3RQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wcGluZ0xpc3RXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zaG9wLWxpc3QtaXRlbS9zaG9wLWxpc3QtaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcHBpbmctbGlzdC13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcHBpbmdMaXN0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wcGluZy1saXN0LXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wcGluZ0xpc3RXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zdWJ0b3RhbC1wcmljZS9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvdGFicy13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvVGFic1dpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC10YWJzL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L3ZpZXdzL3ByaWNlLWNoZWNrL3ByaWNlLWNoZWNrLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0Rpc2NvdW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvdmlld3MvY2FydC1kaXNjb3VudC1zdW1tYXJ5L2NhcnQtZGlzY291bnQtc3VtbWFyeS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9EaXNjb3VudFdpZGdldC9UaGVtZS9kZWZhdWx0L3ZpZXdzL2NhcnQtZGlzY291bnQtdm91Y2hlci1mb3JtL2NhcnQtZGlzY291bnQtdm91Y2hlci1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0Rpc2NvdW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvdmlld3MvY2hlY2tvdXQtc3VtbWFyeS1kaWNvdW50LXZvdWNoZXItZm9ybS9jaGVja291dC1zdW1tYXJ5LWRpY291bnQtdm91Y2hlci1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL011bHRpQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC92aWV3cy9jYXJ0LXVwZGF0ZS9jYXJ0LXVwZGF0ZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9BZ2VudFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FnZW50LWNvbnRyb2wtaXRlbS9hZ2VudC1jb250cm9sLWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQXZhaWxhYmlsaXR5RGF0ZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2F2YWlsYWJpbGl0eS1kYXRlLWl0ZW0vYXZhaWxhYmlsaXR5LWRhdGUtaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXJ0Tm90ZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtaXRlbS1ub3RlL2NhcnQtaXRlbS1ub3RlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhcnROb3RlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FydC1pdGVtLW5vdGUtYWN0aW9ucy9jYXJ0LWl0ZW0tbm90ZS1hY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhcnRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FydC1ib3R0b20vY2FydC1ib3R0b20uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LXN1bW1hcnkvY2FydC1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhcnRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY2FydC10aXRsZS9jYXJ0LXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NoZWNrb3V0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvY2hlY2tvdXQtc2VjdXJlL2NoZWNrb3V0LXNlY3VyZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVja291dC1hZGRyZXNzL2NoZWNrb3V0LWFkZHJlc3Muc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hlY2tvdXQtZm9ybS9jaGVja291dC1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NoZWNrb3V0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrb3V0LWxpc3QvY2hlY2tvdXQtbGlzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVja291dC13cmFwL2NoZWNrb3V0LXdyYXAuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hpcG1lbnQtZ3JvdXAvc2hpcG1lbnQtZ3JvdXAuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hpcG1lbnQtdGFicy9zaGlwbWVudC10YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NoZWNrb3V0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3N1bW1hcnktb3ZlcnZpZXcvc3VtbWFyeS1vdmVydmlldy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zdW1tYXJ5LXNpZGViYXItaXRlbS9zdW1tYXJ5LXNpZGViYXItaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zdW1tYXJ5LXRvZ2dsZS9zdW1tYXJ5LXRvZ2dsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DdXN0b21lclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcmljZS10b2tlbi1tb2RhbC9wcmljZS10b2tlbi1tb2RhbC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DdXN0b21lclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9qZWN0LW9yZGVyLWRldGFpbC10YWJsZS9wcm9qZWN0LW9yZGVyLWRldGFpbC10YWJsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DdXN0b21lclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9qZWN0LW9yZGVyLWluZm8vcHJvamVjdC1vcmRlci1pbmZvLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2plY3Qtb3JkZXItdGFibGUvcHJvamVjdC1vcmRlci10YWJsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Ecm9wU2hpcG1lbnRFeHBlbnNlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvZHJvcC1zaGlwbWVudC1leHBlbnNlLWxpc3QvZHJvcC1zaGlwbWVudC1leHBlbnNlLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvRXJyb3JQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvZXJyb3ItYmxvY2svZXJyb3ItYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvRXVyb3BlYW5Qcm9kdWN0RW5lcmd5TGFiZWxXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9ldXJvcGVhbi1wcm9kdWN0LWVuZXJneS1sYWJlbC9ldXJvcGVhbi1wcm9kdWN0LWVuZXJneS1sYWJlbC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9FeHRlcm5hbFByb2R1Y3RDb25maWd1cmF0b3JXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9leHRlcm5hbC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1mdWppdHN1L2V4dGVybmFsLXByb2R1Y3QtY29uZmlndXJhdG9yLWZ1aml0c3Uuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvRXh0ZXJuYWxQcm9kdWN0Q29uZmlndXJhdG9yV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvZXh0ZXJuYWwtcHJvZHVjdC1jb25maWd1cmF0b3ItcHJpbnRlci00LXlvdS9leHRlcm5hbC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1wcmludGVyLTQteW91LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0V4dGVybmFsUHJvZHVjdENvbmZpZ3VyYXRvcldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2V4dGVybmFsLXByb2R1Y3QtcHJpY2UtcmVxdWVzdC1mdWppdHN1L2V4dGVybmFsLXByb2R1Y3QtcHJpY2UtcmVxdWVzdC1mdWppdHN1LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL011bHRpQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9xdW90ZS10YWJsZS9xdW90ZS10YWJsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9NdWx0aUNhcnRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9hZGQtdG8tY2FydC1zZWxlY3Rvci9hZGQtdG8tY2FydC1zZWxlY3Rvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9NdWx0aUNhcnRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9taW5pLWNhcnQtZGV0YWlsL21pbmktY2FydC1kZXRhaWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvT3JkZXJDdXN0b21SZWZlcmVuY2VXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9vcmRlci1jdXN0b20tcmVmZXJlbmNlL29yZGVyLWN1c3RvbS1yZWZlcmVuY2Uuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJpY2VMaXN0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJpY2UtbGlzdC9wcmljZS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RBdHRyaWJ1dGVMYWJlbFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2F0dHJpYnV0ZS1ncm91cC9hdHRyaWJ1dGUtZ3JvdXAuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdENvbXBhcmVTdWsvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb21wYXJlLWF0dHJpYnV0ZXMvY29tcGFyZS1hdHRyaWJ1dGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RDb21wYXJlU3VrL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29tcGFyZS1pbmZvL2NvbXBhcmUtaW5mby5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0Q29tcGFyZVN1ay9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbXBhcmUtaXRlbS9jb21wYXJlLWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERpc2NvbnRpbnVlZFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvcHJvZHVjdC1kaXNjb250aW51ZWQtbm90ZS9wcm9kdWN0LWRpc2NvbnRpbnVlZC1ub3RlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RJbWFnZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ltYWdlLWdhbGxlcnkvaW1hZ2UtZ2FsbGVyeS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0T3B0aW9uV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3B0aW9uLWRpc3BsYXkvb3B0aW9uLWRpc3BsYXkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdE9wdGlvbldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3Qtb3B0aW9ucy9wcm9kdWN0LW9wdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFBhY2thZ2luZ1VuaXRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9tZWFzdXJlbWVudC11bml0L21lYXN1cmVtZW50LXVuaXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFBhY2thZ2luZ1VuaXRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXBhY2thZ2luZy1uZXctcHJpY2UvcHJvZHVjdC1wYWNrYWdpbmctbmV3LXByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RTZWFyY2hXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXNlYXJjaC1hdXRvY29tcGxldGUtZm9ybS9wcm9kdWN0LXNlYXJjaC1hdXRvY29tcGxldGUtZm9ybS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0U2V0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvcHJvZHVjdC1zZXQvcHJvZHVjdC1zZXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvamVjdFJlcXVlc3RXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9qZWN0LW9yZGVyLWZvcm0vcHJvamVjdC1vcmRlci1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2plY3RSZXF1ZXN0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvamVjdC1vcmRlci1wcm9kdWN0LWxpc3QvcHJvamVjdC1vcmRlci1wcm9kdWN0LWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvamVjdFJlcXVlc3RXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9qZWN0LXJlcXVlc3QtZm9ybS9wcm9qZWN0LXJlcXVlc3QtZm9ybS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9qZWN0UmVxdWVzdFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2plY3QtcmVxdWVzdC1wcm9kdWN0LWxpc3QvcHJvamVjdC1yZXF1ZXN0LXByb2R1Y3QtbGlzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9RdWlja09yZGVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3F1aWNrLW9yZGVyLWZpbGUtdXBsb2FkL3F1aWNrLW9yZGVyLWZpbGUtdXBsb2FkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1F1aWNrT3JkZXJQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcXVpY2stb3JkZXItdGV4dC1vcmRlci1mb3JtL3F1aWNrLW9yZGVyLXRleHQtb3JkZXItZm9ybS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9SZWFsdGltZVByaWNlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJpY2UtZmV0Y2hlci9wcmljZS1mZXRjaGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1NhbGVzT3JkZXJUaHJlc2hvbGRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zYWxlcy1vcmRlci10aHJlc2hvbGQtZXhwZW5zZS9zYWxlcy1vcmRlci10aHJlc2hvbGQtZXhwZW5zZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc09yZGVyVGhyZXNob2xkV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2FsZXMtb3JkZXItdGhyZXNob2xkLWV4cGVuc2UtbGlzdC9zYWxlcy1vcmRlci10aHJlc2hvbGQtZXhwZW5zZS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BwaW5nTGlzdFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zaGFyZS1saXN0LWl0ZW0vc2hhcmUtbGlzdC1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BwaW5nTGlzdFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zaG9wcGluZy1saXN0LW92ZXJ2aWV3LXRhYmxlL3Nob3BwaW5nLWxpc3Qtb3ZlcnZpZXctdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3V0aWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3V0aWxzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy91dGlscy9fdGV4dC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvdXRpbHMvX2Zsb2F0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy91dGlscy9fdmlzaWJpbGl0eS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3NwYWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3V0aWxzL192aXNpYmlsaXR5LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbmVzIHRoZSBtYWluIGNvbG9yIG9mIHRoZSBzaG9wIHRoZW1lLiBVc2FnZTogcHJpbWFyeSBlbGVtZW50cycgYmFja2dyb3VuZCBhbmQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLW1haW46ICMyMTk5ZTggIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhbHRlcm5hdGl2ZSBjb2xvciBvZiB0aGUgc2hvcCB0aGVtZS4gVXNhZ2U6IHNlY29uZGFyeSBlbGVtZW50cycgYmFja2dyb3VuZCBhbmQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWFsdDogI2UyNjk0YSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHdoaXRlIGNvbG9yLiBVc2FnZTogbm90IHRyYW5zcGFyZW50IGVsZW1lbnRzJyBiYWNrZ3JvdW5kIG9mIGRlZmF1bHQgYmFja2dyb3VuZC5cbiAqL1xuJHNldHRpbmctY29sb3Itd2hpdGU6ICNmZmZmZmYgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGxpZ2h0IHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlcnMgYW5kIHRleHQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0OiAjZGFkYWRhICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBsaWdodGVyIHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlcnMgYW5kIHRleHQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI6ICNmMGYwZjAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbGlnaHRlc3Qgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVycyBhbmQgdGV4dC5cbiAqL1xuJHNldHRpbmctY29sb3ItbGlnaHRlc3Q6ICNmNGY0ZjQgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc2hhZGUgb2YgdGhlIGJsYWNrIGNvbG9yLiBVc2FnZTogYXMgYSBiYXNlIG9mIGJsYWNrIGNvbG9yIGZvciBzZW1pLXRyYW5zcGFyZW50IGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1ibGFjazogIzAwMDAwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGFyayBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyB0ZXh0IGNvbG9yIHZhcmlhbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWRhcms6ICNiYmJiYmIgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRhcmtlciBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyB0ZXh0IGNvbG9yIHZhcmlhbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWRhcmtlcjogIzc3Nzc3NyAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkYXJrZXN0IHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIHRleHQgY29sb3IgdmFyaWFudC5cbiAqL1xuJHNldHRpbmctY29sb3ItZGFya2VzdDogIzMzMzMzMyAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgdHJhbnNwYXJlbnQgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVyLlxuICovXG4kc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDogcmdiYSgkc2V0dGluZy1jb2xvci13aGl0ZSwgMCkgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbWFpbiBiYWNrZ3JvdW5kIGNvbG9yLiBVc2FnZTogYm9keSBhbmQgc2lkZS1kcmF3ZXIgYmFja2dyb3VuZC5cbiAqL1xuJHNldHRpbmctY29sb3ItYmc6ICRzZXR0aW5nLWNvbG9yLXdoaXRlICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1haW4gY29sb3Igb2YgdGV4dC4gVXNhZ2U6IGRlZmF1bHQgZ2xvYmFsIHRleHQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLXRleHQ6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3QgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgZ2xvYmFsIGJvcmRlciBjb2xvciBmb3IgdGhlIGlucHV0IGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGdsb2JhbCBib3JkZXIgY29sb3IgZm9yIHRoZSBpbnB1dCBlbGVtZW50cyBvbiBmb2N1cyBldmVudC5cbiAqL1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzOiAkc2V0dGluZy1jb2xvci1kYXJrICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBzaGFkb3cgc2hhZGUgYW5kIHRyYW5zcGFyZW5jeSBmb3IgdGhlIHNoYWRvd2VkIGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1zaGFkb3c6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgb3ZlcmxheSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzIHdpdGggb3ZlcmxheSAtIHNpZGUtZHJhd2VyLCBwb3B1cHMgZXRjLlxuICovXG4kc2V0dGluZy1jb2xvci1vdmVybGF5OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjMpICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGltYWdlIG92ZXJsYXkgY29sb3IuIFVzYWdlOiBpbWFnZXMgd2l0aCBvdmVybGF5IC0gbGF6eS1pbWFnZS5cbiAqL1xuJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4wNSkgIWRlZmF1bHQ7XG5cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU6ICNlYWYxZmE7XG5cbiRzZXR0aW5nLWNvbG9yLWJsdWU6ICMwMDY0YjQ7XG5cbi8qKlxuICogRGVmaW5lcyBhY3Rpb24gY29sb3JzIG1hcC5cbiAqL1xuJHNldHRpbmctY29sb3ItYWN0aW9uczogKFxuICAgIHN1Y2Nlc3M6ICM0ZmMyYTAsXG4gICAgd2FybmluZzogI2YyOTEzMyxcbiAgICBhbGVydDogI2IyMTcxYSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZm9udCBmYW1pbHkgc2V0dGluZy4gVXNhZ2U6IGJvZHkgZ2xvYmFsIGZvbnQgc3R5bGVzLlxuICovXG4kc2V0dGluZy1mb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGZvbnQgZmFtaWx5IHNldHRpbmcgZm9yIGNvZGUuIENhbiBiZSB1c2VkIGZvciBjb2RlIGFuZCBwcmUgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLWZvbnQtZmFtaWx5LWNvZGU6ICdNZW5sbycsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGJhc2ljIGZvbnQgc2l6ZS4gVXNhZ2U6IGdsb2JhbCBiYXNpYyBmb250IHNpemUuXG4gKi9cbiRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIEZvbnQgc2l6ZSB2YWx1ZXMgbWFwLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBzdHlsZXMgZm9yIGhlYWRpbmdzLCB0ZXh0IGVsZW1lbnRzIGV0Yy5cbiAqL1xuJHNldHRpbmctZm9udC1zaXplOiAoXG4gICAgMTogMzhweCxcbiAgICAyOiAzNHB4LFxuICAgIDM6IDMwcHgsXG4gICAgNDogMjZweCxcbiAgICA1OiAyMnB4LFxuICAgIDY6IDE4cHgsXG4gICAgYmlnOiAxNnB4LFxuICAgIGRlZmF1bHQ6IDE0cHgsXG4gICAgc21hbGw6IDEycHgsXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIEZvbnQgd2VpZ2h0IHZhbHVlcyBtYXAuIFVzYWdlOiBtaXhpbiB0byBzZXQgZm9udCB3ZWlnaHQgcHJvcGVydHkuXG4gKi9cbiRzZXR0aW5nLWZvbnQtd2VpZ2h0OiAoXG4gICAgbGlnaHQ6IDMwMCxcbiAgICByZWd1bGFyOiA0MDAsXG4gICAgYm9sZDogOTAwLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBGb250IGxpbmUgaGVpZ2h0IHZhbHVlcyBtYXAuIFVzYWdlOiBtaXhpbnMgcHJvdmlkaW5nIHN0eWxlcyBmb3IgaGVhZGluZ3MsIHRleHQgZWxlbWVudHMgZXRjLlxuICovXG4kc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0OiAoXG4gICAgMTogMS4xLFxuICAgIDI6IDEuMixcbiAgICAzOiAxLjQsXG4gICAgNDogMS40LFxuICAgIDU6IDEuNCxcbiAgICA2OiAxLjQsXG4gICAgZGVmYXVsdDogMS41LFxuICAgIHRpZ2h0OiAxLjEsXG4pICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBkdXJhdGlvbiB2YWx1ZSBmb3IgdGhlIGFuaW1hdGlvbiBlZmZlY3RzLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBhbmltYXRpb24gcHJvcGVydGllcy5cbiAqL1xuJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZHVyYXRpb246IDI1MG1zICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IHRpbWluZyBmdW5jdGlvbiBmb3IgdGhlIGFuaW1hdGlvbiBlZmZlY3RzLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBhbmltYXRpb24gcHJvcGVydGllcy5cbiAqL1xuJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZTogZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZGVmYXVsdCB6LWluZGV4IHZhbHVlLlxuICovXG4kc2V0dGluZy16aS1lbGVtZW50OiAxICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgYWpheCBkeW5hbWljIGxvYWRlci5cbiAqL1xuJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjogMzAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nOiAzNTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgaGVhZGVyIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLWhlYWRlcjogNDAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHNpZGUgZHJhd2VyIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLXNpZGUtZHJhd2VyOiA1MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgcG9wdXAuXG4gKi9cbiRzZXR0aW5nLXppLXBvcHVwOiA1NTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgb3ZlcmxheS5cbiAqL1xuJHNldHRpbmctemktb3ZlcmxheTogNTUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBhcmVhIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhOiA2MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgc2VhcmNoIHN1Z2dlc3Rpb25zIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9uczogNzAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIGFqYXggbG9hZGVyLlxuICovXG4kc2V0dGluZy16aS1hamF4LWxvYWRlcjogNzUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHRvcCBuYXZpZ2F0aW9uIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wOiA4MDAgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgc3BhY2luZyB2YWx1ZXMgbWFwLiBVc2FnZTogc3BhY2luZyBoZWxwZXJzIGFuZCBtaXhpbnMuXG4gKi9cbiRzZXR0aW5nLXNwYWNpbmc6IChcbiAgICBiaWc6IDFyZW0sXG4gICAgZGVmYXVsdDogMC41cmVtLFxuICAgIHNtYWxsOiAwLjI1cmVtLFxuICAgIHJlc2V0OiAwLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBicmVha3BvaW50cycgdmFsdWVzIGZvciByZXNwb25zaXZlLlxuICovXG4kc2V0dGluZy1icmVha3BvaW50czogKFxuICAgIHNtOiAoXG4gICAgICAgIDAsXG4gICAgICAgIDU0OXB4LFxuICAgICksXG4gICAgbWQ6IChcbiAgICAgICAgNTUwcHgsXG4gICAgICAgIDc2OXB4LFxuICAgICksXG4gICAgbGc6IChcbiAgICAgICAgNzcwcHgsXG4gICAgICAgIDk2OXB4LFxuICAgICksXG4gICAgeGw6IChcbiAgICAgICAgOTcwcHgsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZ3JpZCBzeXN0ZW0gY29sdW1ucyBjb3VudC5cbiAqL1xuJHNldHRpbmctZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGdyaWQgY29udGFpbmVyIG1heCB3aWR0aC5cbiAqL1xuJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg6IDExNjBweCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGd1dHRlcnMnIHNpemUgZm9yIGdyaWQgXCJ3aXRoLWd1dHRlclwiIG1vZGlmaWVyLlxuICovXG4kc2V0dGluZy1ncmlkLWd1dHRlcjogMCAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBpbXBvcnQgYmxhY2tsaXN0LiBVc2FnZTogaW1wb3J0IGhlbHBlci5cbiAqL1xuJHNldHRpbmctaW1wb3J0LWJsYWNrbGlzdDogKCk7XG4iLCIvKipcbiAqIFByb3ZpZGVzIGxpc3Qgb2YgcHJvcGVyaWVzIGZvciByZXNldCB1c2FnZS5cbiAqL1xuQG1peGluIGhlbHBlci1yZXNldCB7XG4gICAgLy8gaHR0cHM6Ly93d3cucGF1bGlyaXNoLmNvbS8yMDEyL2JveC1zaXppbmctYm9yZGVyLWJveC1mdHcvXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFdyYXBwZXIgZnVuY3Rpb24gZm9yIHRoZSBkYXJrZW4gc2FzcyBmdW5jdGlvbiB3aXRoIGEgZGVmYXVsdCBkZWdyZWUgcGFyYW1ldGVyLlxuICogQHBhcmFtIHtDb2xvcn0gJHNldHRpbmctY29sb3JcbiAqIEBwYXJhbSB7TnVtYmVyfSAkZGVncmVlIFsxMF1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAxMCkge1xuICAgIEByZXR1cm4gZGFya2VuKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZ1bmN0aW9uIGZvciB0aGUgbGlnaHRlbiBzYXNzIGZ1bmN0aW9uIHdpdGggYSBkZWZhdWx0IGRlZ3JlZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0NvbG9yfSAkc2V0dGluZy1jb2xvclxuICogQHBhcmFtIHtOdW1iZXJ9ICRkZWdyZWUgWzEwXVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAzNSkge1xuICAgIEByZXR1cm4gbGlnaHRlbigkc2V0dGluZy1jb2xvciwgJGRlZ3JlZSk7XG59XG4iLCIvKipcbiAqIFNldHMgZm9udC1zaXplIHByb3BlcnR5IGZyb20gZm9udCBzaXplIHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRzaXplXG4gKi9cbkBtaXhpbiBoZWxwZXItZm9udC1zaXplKCRzaXplKSB7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJHNpemUpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogU2V0cyBmb250LXdlaWdodCBwcm9wZXJ0eSBmcm9tIGZvbnQgd2VpZ2h0IHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtd2VpZ2h0IGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG1hcCBrZXkuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHdlaWdodFxuICovXG5AbWl4aW4gaGVscGVyLWZvbnQtd2VpZ2h0KCR3ZWlnaHQpIHtcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LXdlaWdodCwgJHdlaWdodCk7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBTZXRzIGxpbmUtaGVpZ2h0IHByb3BlcnR5IGZyb20gbGluZS1oZWlnaHQgc2V0dGluZ3MgbWFwIC0gJHNldHRpbmctZm9udC1saW5lLWhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRoZWlnaHRcbiAqL1xuQG1peGluIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgICBsaW5lLWhlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0LCAkaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBQb3ZpZGVzIHRyYW5zaXRpb24gcHJvcGVydHkgY29uZmlndXJlZCBieSB0aGUgcGFzc2VkIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHByb3BzXG4gKiBAcGFyYW0ge051bWJlcn0gJGR1cmF0aW9uIFskc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbl1cbiAqIEBwYXJhbSB7U3RyaW5nfSAkZWFzZSBbJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZV1cbiAqL1xuQG1peGluIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihcbiAgICAkcHJvcHM6IG9wYWNpdHkgdmlzaWJpbGl0eSxcbiAgICAkZHVyYXRpb246ICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uLFxuICAgICRlYXNlOiAkc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1lYXNlXG4pIHtcbiAgICAkdHJhbnNpdGlvbjogbnVsbDtcblxuICAgIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgICAgICR0cmFuc2l0aW9uOiAkcHJvcCAkZHVyYXRpb24gJGVhc2UsICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBGb3JjZXMgZWxlbWVudCB2aXNpYmlsaXR5LlxuICovXG5AbWl4aW4gaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBGb3JjZXMgZWxlbWVudCBpbnZpc2liaWxpdHkuXG4gKi9cbkBtaXhpbiBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFByb3ZpZGVzIGdsb2JhbCBjbGFzcyBuYW1lcyB3aXRoIHNwYWNpbmcgcHJvcGVydGllcyBzZXQgZnJvbSAkc2V0dGluZy1zcGFjaW5nIG1hcC5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBNYWluIHNlbGVjdG9yIG5hbWUuXG4gKiBAcGFyYW0ge0xpc3R9ICRzaWRlcyBbW11dIExpc3Qgb2Ygc2lkZXMgdG8gc2V0IHByb3BlcnRpZXMuXG4gKi9cbkBtaXhpbiBoZWxwZXItc3BhY2luZygkbmFtZSwgJHNpZGVzOiBbXSkge1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLW91dGVyKCRuYW1lLCAkc2lkZXMpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLWlubmVyKCRuYW1lLCAkc2lkZXMpO1xufVxuXG5AbWl4aW4gaGVscGVyLXNwYWNpbmctb3V0ZXIoJG5hbWUsICRzaWRlcykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmLS0jeyRzcGFjaW5nLW5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWxwZXItc3BhY2luZy1pbm5lcigkbmFtZSwgJHNpZGVzKSB7XG4gICAgI3skbmFtZX0tLWlubmVyIHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGF0LXJvb3QgI3skbmFtZX0tLWlubmVyI3skbmFtZX0tLSN7JHNwYWNpbmctbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaWYgbGVuZ3RoKCRzaWRlcykgPT0gMCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLSN7JHNpZGV9OiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogUmV0dXJucyAwIG9yIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIHRoZSAkZWRnZXMgbGlzdC5cbiAqIEBwYXJhbSB7TGlzdH0gJGVkZ2VzIFskc2V0dGluZy1icmVha3BvaW50c10gTGlzdCBsZW5ndGggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMi5cbiAqIEByZXR1cm4ge0Jhc2V9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMpIHtcbiAgICBAaWYgbGVuZ3RoKCRlZGdlcykgPiAwIHtcbiAgICAgICAgQHJldHVybiBudGgoJGVkZ2VzLCAxKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuIDA7XG59XG5cbi8qKlxuICogUmV0dXJucyBudWxsIG9yIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlICRlZGdlcyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAkZWRnZXMgWyRzZXR0aW5nLWJyZWFrcG9pbnRzXSBMaXN0IGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLlxuICogQHJldHVybiB7QmFzZX1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWF4KCRlZGdlcykge1xuICAgIEBpZiBsZW5ndGgoJGVkZ2VzKSA+IDEge1xuICAgICAgICBAcmV0dXJuIG50aCgkZWRnZXMsIDIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIG1pbi13aWR0aCBzZXQgdG8gJG1pbiBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gJG1pbiB7TnVtYmVyfSBbMF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWluOiAwKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCBhcyBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdXG4gKiBAcGFyYW0ge051bWJlcn0gJG1heCBbJHNldHRpbmctZ3JpZC1tYXgtd2lkdGhdXG4gKiBAY29udGVudCBFeHRlbmRzIG1peGluIHdpdGggcHJvcGVydGllcyBmb3IgbWVkaWEgcXVlcnkuXG4gKi9cbkBtaXhpbiBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRtaW46IDAsICRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogU2V0cyBzY3JlZW4gbWVkaWEgcXVlcnkgd2l0aCBtYXgtd2lkdGggc2V0IHRvICRtYXggcGFyYW1ldGVyLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCB0byBwYXJhbWV0ZXJzIG9yXG4gKiB3aXRoIG1pbi13aWR0aCBxdWVyeSBpZiBvbmx5IG9uZSBwYXJhbWV0ZXIgaXMgcGFzc2VkLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQoJG1pbi1icCwgJG1heC1icDogbnVsbCkge1xuICAgICRlZGdlcy1taW46IG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsICRtaW4tYnApO1xuICAgICRlZGdlLW1pbjogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLW1pbik7XG5cbiAgICBAaWYgJG1heC1icCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGVkZ2VzLW1heDogbWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgJG1heC1icCk7XG4gICAgICAgICRlZGdlLW1heDogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzLW1heCk7XG5cbiAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkZWRnZS1taW4pIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRlZGdlLW1pbiwgJGVkZ2UtbWF4KSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIFJldHVybnMgY29sdW1uIHJhdGlvIGluIHJlbGF0aW9uIHRvIGNvbHVtbnMgY291bnQuXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtblxuICogQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFskc2V0dGluZy1ncmlkLWNvbHVtbnNdXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItZ3JpZC1zcGFuKCRjb2x1bW4sICRjb2x1bW5zOiAkc2V0dGluZy1ncmlkLWNvbHVtbnMpIHtcbiAgICBAcmV0dXJuIGNhbGMoKDEwMCUgLyAjeyRjb2x1bW5zfSkgKiAjeyRjb2x1bW59KTtcbn1cbiIsIi8qKlxuICogQWRkcyBjbGVhcmluZyBmb3IgZWxlbWVudCB3aXRoIGZsb2F0ZWQgY2hpbGQgZWxlbWVudHMuXG4gKi9cbkBtaXhpbiBoZWxwZXItdWktY2xlYXJmaXgge1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBBZGRzIGEgYm94LXNoYWRvdyB3aXRoIGJhc2ljIHZhbHVlcy5cbiAqL1xuQG1peGluIGhlbHBlci11aS1zaGFkb3coKSB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDFweCAkc2V0dGluZy1jb2xvci1zaGFkb3c7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogQ2hlY2tzIHBhcmFtZXRlciBvbiBwcmVzZW5jZSBpbiB0aGUgYmxhY2tsaXN0IG9mIGltcG9ydHMgc2V0dGluZyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAka2V5d29yZHNcbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGlmICRrZXl3b3JkcyBpcyBub3Qgb24gdGhlIGJsYWNrbGlzdC5cbiAqL1xuQG1peGluIGhlbHBlci1pbXBvcnQoJGtleXdvcmRzLi4uKSB7XG4gICAgJGlzQmxhY2tsaXN0ZWQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleXdvcmQgaW4gJGtleXdvcmRzIHtcbiAgICAgICAgQGlmIGluZGV4KCRzZXR0aW5nLWltcG9ydC1ibGFja2xpc3QsICRrZXl3b3JkKSAhPSBudWxsIHtcbiAgICAgICAgICAgICRpc0JsYWNrbGlzdGVkOiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkaXNCbGFja2xpc3RlZCB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NhbGMtcmVtJztcblxuLmNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucHQyMCB7XG4gICAgcGFkZGluZy10b3A6IHJlbSgyMCk7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGFnZW50LW5hdmlnYXRpb24oKTtcbiIsIi5wcmludC1oaWRkZW4ge1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucHJpbnQtdmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICAgLmNvbC0tcHJpbnQge1xuICAgICAgICBAZm9yICRjb2x1bW4gZnJvbSAxIHRocm91Z2ggJHNldHRpbmctZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgICYtI3skY29sdW1ufSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGhlbHBlci1ncmlkLXNwYW4oJGNvbHVtbik7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudXNlcmNlbnRyaWNzLWJ1dHRvbiwgLnNsaWNrLWFycm93LCAucHJvZHVjdC1jb21wYXJlX19pdGVtLXJlbW92ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ub3JkZXItZGV0YWlsLXJtYSB7XG4gICAgLmhlYWRlciB7XG4gICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBBZGRzIGEgc21hbGwgYXJyb3cgb24gdGhlIGVsZW1lbnQgZm9yIHRoZSBjb25maWd1cmVkIGRpcmVjdGlvbi5cbiAqL1xuQG1peGluIGhlbHBlci1hcnJvdy1kaXJlY3Rpb24oJHdpZHRoLCAkY29sb3IsICRkaXJlY3Rpb246IGJvdHRvbSkge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09IHRvcCB7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBib3R0b20ge1xuICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIERlZmluZXMgaW1wb3J0IGJsYWNrbGlzdC4gVXNhZ2U6IGltcG9ydCBoZWxwZXIuXG4gKi9cbiRzZXR0aW5nLWltcG9ydC1ibGFja2xpc3Q6ICgpO1xuIiwiJHNldHRpbmctY29sb3ItbWFpbjogI0UzMDYxMztcbiRzZXR0aW5nLWNvbG9yLWFsdDogI0UzMDYxMztcblxuJHNldHRpbmctY29sb3ItYmxhY2s6ICMwMDA7XG5cbiRzZXR0aW5nLWNvbG9yLXdoaXRlOiAjZmZmO1xuJHNldHRpbmctY29sb3Itd2hpdGUtMTogI2VhZThlODtcbiRzZXR0aW5nLWNvbG9yLXdoaXRlLTI6ICNmZWZlZmU7XG5cbiRzZXR0aW5nLWNvbG9yLWdyYXktMTogI2RjZTBlNTtcbiRzZXR0aW5nLWNvbG9yLWdyYXktMzogIzhmOGY4ZjtcbiRzZXR0aW5nLWNvbG9yLWdyYXktNDogIzY2NjY2NjtcbiRzZXR0aW5nLWNvbG9yLWdyYXktMjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuJHNldHRpbmctY29sb3ItZ3JheS01OiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTY6ICNlN2VhZWU7XG4kc2V0dGluZy1jb2xvci1ncmF5LTc6ICNmMGYwZjA7XG4kc2V0dGluZy1jb2xvci1ncmF5LTg6ICM2NjY2NjY7XG4kc2V0dGluZy1jb2xvci1ncmF5LTk6ICNCM0IzQjM7XG4kc2V0dGluZy1jb2xvci1ncmF5LTEwOiAjRjhGOEY4O1xuJHNldHRpbmctY29sb3ItZ3JheS0xMTogI0U3RTdFNztcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTI6ICNCM0IzQjM7XG4kc2V0dGluZy1jb2xvci1ncmF5LTEzOiAjOTk5OTk5O1xuJHNldHRpbmctY29sb3ItZ3JheS0xNDogI0M3QzdDNztcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTU6ICNGN0Y3Rjk7XG5cbiRzZXR0aW5nLWNvbG9yLXJlZC0xOiAjRTMwNjEzO1xuXG4kc2V0dGluZy1jb2xvci1ibHVlLTE6ICMwMDY0YjQ7XG5cbiRzZXR0aW5nLWNvbG9yLXllbGxvdy0xOiAjZmRiZTM2O1xuJHNldHRpbmctY29sb3IteWVsbG93LTI6ICNmZGNiNWU7XG5cbiRzZXR0aW5nLWNvbG9yLWdyZWVuLTE6ICM2Q0E1MkY7XG4kc2V0dGluZy1jb2xvci1ncmVlbi0yOiAjMWViZWEwO1xuXG4kc2V0dGluZy1jb2xvci1hbHQtaG92ZXI6IGxpZ2h0ZW4oJHNldHRpbmctY29sb3ItYWx0LCAxMCUpO1xuXG4kc2V0dGluZy1jb2xvci1hbHBoYS0xOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjEpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtMjogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4wNSk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS0zOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWdyYXktMiwgMC4zKTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTQ6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDAuNik7XG4kc2V0dGluZy1jb2xvci1hbHBoYS01OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWFsdCwgMC4xKTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTY6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMik7XG4kc2V0dGluZy1jb2xvci1hbHBoYS03OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWdyYXktNSwgMC44KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTg6IHJnYmEoJHNldHRpbmctY29sb3IteWVsbG93LTEsIDAuMik7XG5cbiRzZXR0aW5nLWNvbG9yLW92ZXJsYXk6IHJnYmEoJHNldHRpbmctY29sb3ItZ3JheS01LCAwLjQpO1xuXG4kc2V0dGluZy1jb2xvci1iZzogJHNldHRpbmctY29sb3Itd2hpdGU7XG4kc2V0dGluZy1jb2xvci10ZXh0OiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4kc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1czogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4kc2V0dGluZy1jb2xvci1zaGFkb3c6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTE7XG4kc2V0dGluZy1jb2xvci1zaGFkb3ctMTogJHNldHRpbmctY29sb3ItYWxwaGEtMjtcbiRzZXR0aW5nLWNvbG9yLXNoYWRvdy0yOiAkc2V0dGluZy1jb2xvci1hbHBoYS02O1xuXG4kc2V0dGluZy1jb2xvci1kYXJrOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiRzZXR0aW5nLWNvbG9yLXBkcC1ocjogI0U5RTdFNztcbiRzZXR0aW5nLWNvbG9yLXByb2R1Y3QtdGFicy1ib3JkZXI6ICNEOEQ4RDg7XG5cbiRzZXR0aW5nLWNvbG9yLWFjdGlvbnM6IChcbiAgICBzdWNjZXNzOiAkc2V0dGluZy1jb2xvci1ncmVlbi0yLFxuICAgIHdhcm5pbmc6ICRzZXR0aW5nLWNvbG9yLXllbGxvdy0xLFxuICAgIGFsZXJ0OiAkc2V0dGluZy1jb2xvci1hbHRcbik7XG5cbiRzZXR0aW5nLWNvbG9yLWJ1dHRvbi1hY3Rpb25zOiAoXG4gICAgc3VjY2VzczogJHNldHRpbmctY29sb3ItbWFpbixcbiAgICB3YXJuaW5nOiAkc2V0dGluZy1jb2xvci15ZWxsb3ctMSxcbiAgICBhbGVydDogJHNldHRpbmctY29sb3ItYWx0XG4pO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICBwYWRkaW5nOiByZW0oMjIpIDA7XG5cbiAgICAgICAgLmJvZHktb3ZlcmxheS0tbm8tYWdlbnQtdXNlciAmIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYWdlbnQtY29udHJvbC1iYXIoKTtcblxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLWNhcnQtaXRlbXMtbGlzdCgkbmFtZTogJy5jYXJ0LWl0ZW1zLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTIpIHJlbSgyMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuXG4gICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuXG4gICAgICAgICAgICAgICAgYiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQGluY2x1ZGUgY2FydC1wYWdlLWNhcnQtaXRlbXMtbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29tbWVudC13aWRnZXQtY29tbWVudCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb21tZW50LXdpZGdldC10YWctbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3Q7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2U7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCByZWFkb25seS1idW5kbGVkLW5vdGUpIHtcbiAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b247XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWw7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3Q7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBjb25maWd1cmVkLWJ1bmRsZSkge1xuICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBjb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KSB7XG4gICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdDtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNCkgcmVtKDgpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgcmVzaXplOiBub25lO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXN0YXR1cyB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAmLS1jb21wbGV0ZWQ6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1iYWNrbG9nOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgZmlsZS1kb3dubG9hZC1saW5rO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubWluaS1jYXJ0LXJhZGlvIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwcmljZUhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWRlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdm9sdW1lLXByaWNlKCk7XG5cbkBrZXlmcmFtZXMgcHJpY2VIaWdobGlnaHQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTBweCAwICRzZXR0aW5nLWNvbG9yLWFscGhhLTEsIDAgM3B4IDNweCAwICRzZXR0aW5nLWNvbG9yLWFscGhhLTE7XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTMpIHJlbSgyMCkgcmVtKDExKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg1MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDExKSByZW0oMjApO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGU7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIGJ1bmRsZS1pdGVtcykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXM7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIGNvbG9yLXNlbGVjdG9yKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3I7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIHByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3I7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIHByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3Rvcikge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3Rvcjtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZztcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICZfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBwYWRkaW5nOiByZW0oMykgcmVtKDE1KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAmLS10b3Age1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZS0xO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNhbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0ZXJuYXRpdmUsXG4gICAgICAgICYtLWRpc2NvbnRpbnVlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHktaXN0b2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zZXRzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTQpO1xuICAgIH1cbn1cbiIsIiRzZXR0aW5nLWZvbnQtZmFtaWx5OiAnRnJ1dGlnZXJOZXh0UHJvJztcbiRzZXR0aW5nLWZvbnQtZmFtaWx5LWlzdG9rOiAnSXN0b2snLCBzYW5zLXNlcmlmO1xuXG4kc2V0dGluZy1mb250LXNpemU6IChcbiAgICAxOiByZW0oNDApLFxuICAgIDI6IHJlbSgzMiksXG4gICAgMzogcmVtKDI0KSxcbiAgICA0OiByZW0oMTgpLFxuICAgIDU6IHJlbSgxNiksXG4gICAgNjogcmVtKDE0KSxcbiAgICBiaWc6IHJlbSgxOCksXG4gICAgZGVmYXVsdDogcmVtKDE2KSxcbiAgICBzbWFsbDogcmVtKDE0KSxcbiAgICB0aW55OiByZW0oMTIpXG4pO1xuXG4kc2V0dGluZy1mb250LXdlaWdodDogKFxuICAgIHJlZ3VsYXI6IDQwMCxcbiAgICBtZWRpdW06IDUwMCxcbiAgICBib2xkOiA1MDBcbik7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZztcbiIsIiRzZXR0aW5nLXppLWVsZW1lbnQ6IDE7XG4kc2V0dGluZy16aS1jb21wYW55LW1lbnU6IDEwO1xuJHNldHRpbmctemktdG9vbHRpcDogNjAwO1xuJHNldHRpbmctemktb3ZlcmxheTogNzAwO1xuJHNldHRpbmctemktZHJvcGRvd246IDEwMDA7XG4kc2V0dGluZy16aS1jb21wYW55LW1lbnU6IDEwO1xuJHNldHRpbmctemktY29tcGFyZS1yZW1vdmU6IDE7XG4kc2V0dGluZy16aS1zdWJzdHJhdGU6IC0xO1xuJHNldHRpbmctemktZmlsdGVyOiA5MDA7XG4kc2V0dGluZy16aS1jdXN0b20tc2VsZWN0OiAxMTUwO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE4KTtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMyk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMCkgcmVtKDIwKSByZW0oNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxNSk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg1MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xlYXItYWxsLXRyaWdnZXIsXG4gICAgICAgICZfX2FkZC1yb3ctdHJpZ2dlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZC1yb3ctdHJpZ2dlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFwwMDJCJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oNDApO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogcmVtKDIpIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cy0yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm07XG4iLCIkc2V0dGluZy1ib3JkZXItcmFkaXVzOiAycHg7XG4kc2V0dGluZy1ib3JkZXItcmFkaXVzLTE6IDVweDtcbiRzZXR0aW5nLWJvcmRlci1yYWRpdXMtMjogMTVweDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coKSB7XG4gICAgJi0taXMtbG9hZGluZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9faG9sZGVyLXF1YW50aXR5IHtcbiAgICAgICAgcGFkZGluZzogcmVtKDgpIHJlbSgxMCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgfVxuXG4gICAgJl9fcXVhbnRpdHlbdHlwZT0nbnVtYmVyJ10ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KDUwMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIHdpZHRoOiByZW0oNDYpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMjQpO1xuICAgICAgICBwYWRkaW5nOiByZW0oNikgcmVtKDEyKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTs7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtNTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTg7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3IteWVsbG93LTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZCk7XG4gICAgICAgIHdpZHRoOiByZW0oMjgpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgyOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgxMCkgcmVtKDEwKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdywgMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93O1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLS1kZWNyZW1lbnQ6OmJlZm9yZSxcbiAgICAgICAgJi0taW5jcmVtZW50OjpiZWZvcmUsXG4gICAgICAgICYtLWluY3JlbWVudDo6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg5KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5jcmVtZW50OjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1yZXF1ZXN0LXJlYWx0aW1lLXByaWNlIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjYpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogcmVtKDI2KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuXG4gICAgICAgICYtLWlzLWxvYWRpbmcsXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk5OTk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM5OTk5OTk7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3LXByaWNlLWFwcGxpZWQ6ZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdC1zZWFyY2gge1xuICAgICAgICAucHJvZHVjdC1zZWFyY2gtYXV0b2NvbXBsZXRlLWZvcm1fX2lucHV0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5hdmFpbGFiaWxpdHktbm90ZSxcbiAgICAuZGVsaXZlcnktdGltZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ob2xkZXItcXVhbnRpdHkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDgpIHJlbSgxMCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDI0KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg2KSByZW0oMTIpO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTs7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtNTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS04O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci15ZWxsb3ctMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F1YW50aXR5W3R5cGU9J251bWJlciddIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoNTAwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDQ2KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMjgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTApIHJlbSgxMCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3csIDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmLS1kZWNyZW1lbnQ6OmJlZm9yZSxcbiAgICAgICAgICAgICYtLWluY3JlbWVudDo6YmVmb3JlLFxuICAgICAgICAgICAgJi0taW5jcmVtZW50OjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg5KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWluY3JlbWVudDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oOSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1yZXF1ZXN0LXJlYWx0aW1lLXByaWNlIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgyNik7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDI2KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICAmLS1pcy1sb2FkaW5nLFxuICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk5OTk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5OTk5O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5ldy1wcmljZS1hcHBsaWVkOmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYXZhaWxhYmlsaXR5LW5vdGUsXG4gICAgICAgIC5kZWxpdmVyeS10aW1lIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3QtYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgIC5mYS11bCBsaSxcbiAgICAgICAgICAgIC5hdmFpbGFiaWxpdHktbm90ZV9fdGV4dHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mYS11bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgyMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktNztcblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG9vbHRpcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIgI3skbmFtZX1fX3Rvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcblxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYWxsKTtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDcpIHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIC01MCUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMjAwKTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHggMCA1cHggNXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM2NjY2NjY7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtNnB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgb3JkZXItY29uZmlndXJlZC1idW5kbGUpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCkge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Q7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBvcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Q7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbXBvcnQgJy4uL3Nob3BwaW5nLWxpc3Qtbm90ZS9zaG9wcGluZy1saXN0LW5vdGUnO1xuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1ub3RlLXdpZGdldC1zaG9wcGluZy1saXN0LW5vdGUtdG9nZ2xlciAoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1ub3RlLXRvZ2dsZXInKSB7XG4gICAgQGluY2x1ZGUgc2hvcHBpbmctbGlzdC1ub3RlLXdpZGdldC1zaG9wcGluZy1saXN0LW5vdGUoJG5hbWUpIHtcbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dGFyZWEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMjApO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgM3B4IDNweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDg2KTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcHBpbmctbGlzdC1ub3RlLXdpZGdldC1zaG9wcGluZy1saXN0LW5vdGUtdG9nZ2xlcjtcbiIsIkBtaXhpbiBzaG9wcGluZy1saXN0LW5vdGUtd2lkZ2V0LXNob3BwaW5nLWxpc3Qtbm90ZSAoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE2KTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE3KSByZW0oMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg3KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjIzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LW5vdGUtd2lkZ2V0LXNob3BwaW5nLWxpc3Qtbm90ZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCkge1xuICAgIHBhZGRpbmc6IHJlbSgyMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgbWFyZ2luOiByZW0oMTApIDAgMS41cmVtO1xuICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgZm9udC1zaXplOiByZW0oMTQpO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCkge1xuICAgICYgeyBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yOyB9XG5cbiAgICAmX19mdWxsLS1iYWRnZSxcbiAgICAmLS1iYWRnZSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogcmVtKDEzKSByZW0oMjQpIHJlbSgxNSk7XG4gICAgICAgIG1pbi13aWR0aDogcmVtKDQ2OCk7XG4gICAgICAgIG1heC13aWR0aDogcmVtKDYyMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNldHRpbmctZm9udC1zaXplLWJhc2U7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI5KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMzcwKTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuNCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci15ZWxsb3ctMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDkpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oOSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDExKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcF9nZXQoJHNldHRpbmctY29sb3ItYnV0dG9uLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLWNoZWNrLXRhYnNldCgkbmFtZTogJy5wcmljZS1jaGVjay10YWJzZXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAudGFiIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6Y2hlY2tlZCB+IC50YWItY29udGFpbmVyID4gLnRhYjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpOmNoZWNrZWQgfiAudGFiLWNvbnRhaW5lciA+IC50YWI6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNSk6Y2hlY2tlZCB+IC50YWItY29udGFpbmVyID4gLnRhYjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmNoZWNrZWQpICsgbGFiZWwge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsgbGFiZWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJvcmRlci1jb2xvciBjb2xvcik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobm9ybWFsKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDMpIHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IC0yMDB2dztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJpY2UtY2hlY2stdGFic2V0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5jYXJ0LWRpc2NvdW50LXN1bW1hcnkge1xuICAgIHBhZGRpbmctdG9wOiByZW0oMTgpO1xuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogcmVtKDgpIHJlbSgtMjApIDA7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtKDIwKSByZW0oMTcpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDg7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2FydC1kaXNjb3VudC12b3VjaGVyLWZvcm0ge1xuXG4gICAgLmZvcm1fX2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTIpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDY1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtX19hY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNXJlbTtcbiAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5mb3JtX19hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtc3VtbWFyeS1kaWNvdW50LXZvdWNoZXItZm9ybSB7XG5cbiAgICAuZm9ybV9fY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMik7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTI4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtX19hY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IHJlbSg0OCk7XG4gICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAuZm9ybV9fYWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IHJlbSg0OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjApO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmNhcnQtdXBkYXRlIHtcbiAgICBtYXJnaW4tdG9wOiByZW0oNDIpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg0Mik7XG5cbiAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNyk7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtX19hY3Rpb25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcbiAgICB9XG5cbiAgICAuZm9ybV9fYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDIwKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5hZ2VudC1jb250cm9sLWl0ZW0ge1xuXG4gICAgJl9faW5mbyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDgpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXdyYXAge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oOCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhdmFpbGFiaWxpdHktZGF0ZS13aWRnZXQtYXZhaWxhYmlsaXR5LWRhdGUtaXRlbSgkbmFtZTogJy5hdmFpbGFiaWxpdHktZGF0ZS1pdGVtJykge1xuICAjeyRuYW1lfXtcbiAgICAmX19zcGFue1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gIH1cbn1cbkBpbmNsdWRlIGF2YWlsYWJpbGl0eS1kYXRlLXdpZGdldC1hdmFpbGFiaWxpdHktZGF0ZS1pdGVtO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2FydC1pdGVtLW5vdGUge1xuICAgIG1hcmdpbi10b3A6IHJlbSgxNik7XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNykgcmVtKDIwKTtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg3KTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNyk7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzg7XG4gICAgfVxuXG4gICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLmZvcm1fX2FjdGlvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5mb3JtX19hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTIpO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC50ZXh0YXJlYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMjApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgM3B4IDNweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0oODYpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2FydC1pdGVtLW5vdGUtYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDE1KTtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyNyk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2FydC1ib3R0b20ge1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg3KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWdyaWQtc3BhY2UgKiAyO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1jYXJ0LXN1bW1hcnkoJG5hbWU6ICcuY2FydC1zdW1tYXJ5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fb3Ige1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZydXRpZ2VyTmV4dFBybywgc2VyaWY7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI0KTtcbiAgICAgICAgICAgIG1hcmdpbjogMCByZW0oLTIwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMikgcmVtKDIwKTtcblxuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS10b3Atc3BhY2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX192b3VjaGVyLWluZm8ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMjApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZvdWNoZXItaW5mby1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDIwKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190b29sdGlwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgICAgICY6aG92ZXIgLmNhcnQtc3VtbWFyeV9fdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihhbGwpO1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDcpIHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSArIDZweCk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgLTUwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyMDApO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA1cHggNXB4IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHNldHRpbmctY29sb3ItZ3JheS00IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtNnB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXJ0LXBhZ2UtY2FydC1zdW1tYXJ5KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5jYXJ0LXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiByZW0oMzIpO1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEyKTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzYpO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogcmVtKDMpO1xuICAgIH1cblxuICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtc2VjdXJlIHtcbiAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2UtY2hlY2tvdXQtYWRkcmVzcygkbmFtZTogJy5jaGVja291dC1hZGRyZXNzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgLmZvcm1fX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLmFkZHJlc3NGb3JtX2VuZEN1c3RvbWVyQWRkcmVzc192YWxpZGF0aW9uX2Vycm9yLFxuICAgIC5hZGRyZXNzRm9ybV9uZXdTaGlwcGluZ0FkZHJlc3NfdmFsaWRhdGlvbl9lcnJvciB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnBhYy1sb2dvOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wYWMtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xuXG4gICAgLnBhYy1pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLWNoZWNrb3V0LWFkZHJlc3MoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuLmNoZWNrb3V0LWZvcm0ge1xuXG4gICAgJi0taGlkZGVuLWFjdGlvbnMge1xuICAgICAgICAuZm9ybV9fYWN0aW9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5mb3JtX19maWVsZHMge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtKC01KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oLTUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKC0xMCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtMTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDUpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNSk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEwKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybV9fYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuXG4gICAgICAgIC5mb3JtX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMTYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxhYmVsOm5vdChzcGFuKSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgfVxuXG4gICAgLmlucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJveC1zaGFkb3cgYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICB9XG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIHJlbSgxKSAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdDItY29udGFpbmVyIHtcbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMge1xuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3gtc2hhZG93IGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYWRpbyB7XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0OmNoZWNrZWQgfiB7XG5cbiAgICAgICAgICAgIC5yYWRpb19fYm94IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAwLjI1cmVtICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yYWRpb19fbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi5jaGVja291dC1saXN0IHtcblxuICAgICYtLWJvdHRvbS1tYXJnaW4ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgLnJhZGlvX19ib3gsXG4gICAgICAgICAgICAudG9nZ2xlci1yYWRpb19fYm94IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAucmFkaW9fX2JveCxcbiAgICAgICAgICAgIC50b2dnbGVyLXJhZGlvX19ib3gge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTgpO1xuICAgICAgICBwYWRkaW5nOiAwIHJlbSgzMCkgcmVtKDIyKSByZW0oNjQpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmZvcm0ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5yYWRpbyxcbiAgICAudG9nZ2xlci1yYWRpbyB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMzApO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3g6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQ6Y2hlY2tlZCB+IHtcbiAgICAgICAgICAgIC5yYWRpb19fYm94LFxuICAgICAgICAgICAgLnRvZ2dsZXItcmFkaW9fX2JveCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCAzcHggM3B4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRvZ2dsZXItcmFkaW8ge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LXdyYXAge1xuICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgIHBhZGRpbmc6IHJlbSgzMCkgcmVtKDQwKSByZW0oNDApO1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiByZW0oMTApIHJlbSgtMzApIHJlbSgzMCk7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtKDM4KSByZW0oMjIpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgI3tyZW0oNzYpfSk7XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXNoaXBtZW50LWdyb3VwKCRuYW1lOiAnLnNoaXBtZW50LWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE4KTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcblxuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgLnJhZGlvX19ib3gsXG4gICAgICAgICAgICAgICAgLnRvZ2dsZXItcmFkaW9fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIC5yYWRpb19fYm94LFxuICAgICAgICAgICAgICAgIC50b2dnbGVyLXJhZGlvX19ib3gge1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWNvc3RzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcblxuICAgICAgICAgICAgJi0tZHJvcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc2hpcG1lbnQtZ3JvdXAoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc2hpcG1lbnQtdGFicygkbmFtZTogJy5zaGlwbWVudC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLmZvcm0ge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yYWRpbyxcbiAgICAgICAgLnRvZ2dsZXItcmFkaW8ge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcblxuICAgICAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMzApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYm94OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9faW5wdXQ6Y2hlY2tlZCB+IHtcbiAgICAgICAgICAgICAgICAucmFkaW9fX2JveCxcbiAgICAgICAgICAgICAgICAudG9nZ2xlci1yYWRpb19fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxOHB4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgM3B4IDNweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFiIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTE7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogMi41cmVtO1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc2hpcG1lbnQtdGFicygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzYpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuXG4gICAgICAgICZfX3RvcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuXG4gICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjApIHJlbSgyNCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuXG4gICAgICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDI0KSByZW0oMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dC13cmFwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjg3O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5uZXItcm93IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNjb3VudC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzY291bnQtcHJpY2Uge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLnN1bW1hcnktc2lkZWJhci1pdGVtIHtcbiAgICBwYWRkaW5nOiByZW0oMjcpIHJlbSgzMCkgcmVtKDMwKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICB9XG5cbiAgICAmX19tZXRob2Qge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjUpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjIpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLnN1bW1hcnktdG9nZ2xlIHtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNykgcmVtKDIwKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgyMCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEwcHggMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCAzcHggM3B4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTgpO1xuXG4gICAgICAgICYtLXZvdWNoZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1NTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1wcmljZS10b2tlbi1tb2RhbCgkbmFtZTogJy5wcmljZS10b2tlbi1tb2RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24tYm94IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjdXN0b21lci1wYWdlLXByaWNlLXRva2VuLW1vZGFsKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLXByb2plY3Qtb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLnByb2plY3Qtb3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoLCB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTYpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50cmFuc2Zvcm0tY2VsbCA+ICoge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMTYwKTsgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybS1jZWxsID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSgyNDApOyAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yZW1haW5pbmctcXVhbnRpdHkge1xuICAgICAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kYW5nZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGN1c3RvbWVyLXBhZ2UtcHJvamVjdC1vcmRlci1kZXRhaWwtdGFibGUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2UtcHJvamVjdC1vcmRlci1pbmZvKCRuYW1lOiAnLnByb2plY3Qtb3JkZXItaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMCk7XG5cbiAgICAgICAgJl9fcHJvamVjdC1vcmRlciB7XG4gICAgICAgICAgICAmLS1udW1iZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbWFudWZhY3R1cmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY3VzdG9tZXItcmVmZXJlbmNlIHtcbiAgICAgICAgICAgICYtLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgY3VzdG9tZXItcGFnZS1wcm9qZWN0LW9yZGVyLWluZm8oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2UtcHJvamVjdC1vcmRlci10YWJsZSgkbmFtZTogJy5wcm9qZWN0LW9yZGVyLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcHJvamVjdC1vcmRlciB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAmLS1udW1iZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1tYW51ZmFjdHVyZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgY3VzdG9tZXItcGFnZS1wcm9qZWN0LW9yZGVyLXRhYmxlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBkcm9wLXNoaXBtZW50LWV4cGVuc2UtbGlzdCgkbmFtZTogJy5kcm9wLXNoaXBtZW50LWV4cGVuc2UtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oOCkgcmVtKC0yMCkgMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDIwKSByZW0oMTcpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGRyb3Atc2hpcG1lbnQtZXhwZW5zZS1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5lcnJvci1ibG9jayB7XG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xuICAgIH1cblxuICAgICZfX2NvZGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMDApO1xuICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci15ZWxsb3ctMjtcbiAgICB9XG5cbiAgICAmX19jb2RlLWRlY29yIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogcmVtKDEyMSk7XG4gICAgICAgIGhlaWdodDogcmVtKDEyMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3IteWVsbG93LTI7XG4gICAgICAgIG1hcmdpbjogMCByZW0oNSk7XG4gICAgfVxuXG4gICAgJl9fY29kZS1kZWNvci1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IHJlbSg0MCk7XG4gICAgICAgIGhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDQpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB0b3A6IHJlbSgzNyk7XG4gICAgICAgIGxlZnQ6IHJlbSg1MCk7XG5cbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oOCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uZXVyb3BlYW4tcHJvZHVjdC1lbmVyZ3ktbGFiZWxfX2xhYmVsIHtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMjEzcHg7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZXh0ZXJuYWwtcHJvZHVjdC1jb25maWd1cmF0b3ItZnVqaXRzdSgkbmFtZTogJy5leHRlcm5hbC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1mdWppdHN1Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC01KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbjpob3ZlciBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNSk7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGV4dGVybmFsLXByb2R1Y3QtY29uZmlndXJhdG9yLWZ1aml0c3UoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGV4dGVybmFsLXByb2R1Y3QtY29uZmlndXJhdG9yLXByaW50ZXItNC15b3UoJG5hbWU6ICcuZXh0ZXJuYWwtcHJvZHVjdC1jb25maWd1cmF0b3ItcHJpbnRlci00LXlvdScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGV4dGVybmFsLXByb2R1Y3QtY29uZmlndXJhdG9yLXByaW50ZXItNC15b3UoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGV4dGVybmFsLXByb2R1Y3QtcHJpY2UtcmVxdWVzdC1mdWppdHN1KCRuYW1lOiAnLmV4dGVybmFsLXByb2R1Y3QtcHJpY2UtcmVxdWVzdC1mdWppdHN1Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtNSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDQwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b246aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDUpO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBleHRlcm5hbC1wcm9kdWN0LXByaWNlLXJlcXVlc3QtZnVqaXRzdSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ucXVvdGUtdGFibGUge1xuICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG5cbiAgICB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICB9XG5cbiAgICB0aDpmaXJzdC1jaGlsZCxcbiAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDMwKTtcbiAgICB9XG5cbiAgICAmX19jYXJ0LW5hbWUge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFkZC10by1jYXJ0LXNlbGVjdG9yICgkbmFtZTogJy5hZGQtdG8tY2FydC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1hZGQtdG8tY2FydC1zZWxlY3RvcjtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWluaS1jYXJ0LWRldGFpbCAoJG5hbWU6ICcubWluaS1jYXJ0LWRldGFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogcmVtKDEzKSByZW0oMjQpIHJlbSgxNSk7XG4gICAgICAgIG1pbi13aWR0aDogcmVtKDQ2OCk7XG4gICAgICAgIG1heC13aWR0aDogcmVtKDYyMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNldHRpbmctZm9udC1zaXplLWJhc2U7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyOSk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMzcwKTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19tYXJrZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI5KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4xKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG5cbiAgICAgICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuNCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci15ZWxsb3ctMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDkpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oOSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1taW5pLWNhcnQtZGV0YWlsO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ub3JkZXItY3VzdG9tLXJlZmVyZW5jZSB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDE2KTtcblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgcGFkZGluZzogcmVtKDE3KSByZW0oMjApO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDcpO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM4O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLWxpc3QoJG5hbWU6ICcucHJpY2UtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Rvd25sb2FkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG5cbiAgICAgICAgICAgICYtaGVhZGxpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJG1kLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtLXJvdyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG5cbiAgICAgICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmZvIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAubm90ZXMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uLWJveCB7XG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tb2RhbF9zdWJtaXRfYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcblxuICAgICAgICAuZ3Bzci1oZWFkbGluZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcmljZS1saXN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1hdHRyaWJ1dGUtd2lkZ2V0LWF0dHJpYnV0ZS1ncm91cCgkbmFtZTogJy5hdHRyaWJ1dGUtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg4KTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxNik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMzUwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDE4JTtcbiAgICAgICAgd2lkdGg6IDE4JTtcblxuICAgICAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMzRweDtcbiAgICAgICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG5cbiAgICAgICAgICAgICYtLXBkcCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogcmVtKDEuMyk7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDMpIHJlbSgxNSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICAgICAmLS1ncmFkdWF0ZWQtcHJpY2VzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2Y2E1MmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190b29sdGlwIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLmZhbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg1LjQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudG9vbHRpcC1pbmZvIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZHAge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRvcDogcmVtKC0yKTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGxwIHtcbiAgICAgICAgICAgIHRvcDogcmVtKDM1KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNik7XG4gICAgICAgIH1cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGFiZWwtZ3JvdXAtLWhpZGRlbiArICN7JG5hbWV9LS1wbHAge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDgpO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE2KTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtYXR0cmlidXRlLXdpZGdldC1hdHRyaWJ1dGUtZ3JvdXA7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmUoJG5hbWU6ICcucHJvZHVjdC1jb21wYXJlX19hdHRyaWJ1dGVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KTtcblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLXJvdyB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTE1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1ncm91cC10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNsaWRlciB7XG4gICAgICAgICAgICAmLnNsaWNrLWNhcm91c2VsLS1lcXVhbC1oZWlnaHQgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtY29tcGFyZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyZSgkbmFtZTogJy5wcm9kdWN0LWNvbXBhcmVfX2luZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTUpO1xuXG4gICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1ociB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgyMCkgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJpbnQsXG4gICAgICAgICYtY2xlYXIge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oNSkgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1jb21wYXJlO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJlKCRuYW1lOiAnLnByb2R1Y3QtY29tcGFyZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmLXJlbW92ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1jb21wYXJlLXJlbW92ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1zbGlkZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDE1KTtcblxuICAgICAgICAgICAgICAgIC5zbGljay1wcmV2LFxuICAgICAgICAgICAgICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc2xpY2stcHJldiB7XG4gICAgICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxGMDUzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxGMDU0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rLS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RldGFpbHMge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24tLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1jb21wYXJlO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kaXNjb250aW51ZWQtbm90ZSgkbmFtZTogJy5wcm9kdWN0LWRpc2NvbnRpbnVlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDU0KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWRpc2NvbnRpbnVlZC1ub3RlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtaW1hZ2Utd2lkZ2V0LWltYWdlLWdhbGxlcnkoJG5hbWU6ICcuaW1hZ2UtZ2FsbGVyeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjUwKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1NDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDM1cHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLWxlZnQtaW5kZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1NXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAgICAgJi0tY29sb3ItYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaGFzLS1pY29uIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oNjApO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDE2MCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDUwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMjgwKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDExMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWRnZSB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDk2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDk2KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0oMzUpO1xuICAgICAgICAgICAgdG9wOiByZW0oMzUpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGh1bWJuYWlsIHNsaWRlclxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGh1bWItcHJldixcbiAgICAgICAgICAgIC50aHVtYi1uZXh0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMCAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAxMHB4KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJlthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNsaWNrLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50aHVtYi1wcmV2IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMTVweDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRodW1iLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuXG4gICAgICAgICAgICAgICAgJi5pbWFnZS1nYWxsZXJ5X190aHVtYm5haWwtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsMCwwLDAuNzUpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stY3VycmVudCAjeyRuYW1lfV9fdGh1bWJuYWlsLWl0ZW0ge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3pvb20tbGVucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHNldHRpbmctY29sb3ItbWFpbiwgMC44NSk7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgLnpvb20tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHRhYmxldCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXpvb20td2luZG93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4IDIwcHggMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDUwMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAuem9vbS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkdGFibGV0KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4yNSkgMCA2cHggOHB4IDJweDtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtaW1hZ2Utd2lkZ2V0LWltYWdlLWdhbGxlcnk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5vcHRpb24tZGlzcGxheSB7XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNyk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb25zLXByb2R1Y3Qtb3B0aW9ucygkbmFtZTogJy5wcm9kdWN0LW9wdGlvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHNldHRpbmctY29sb3ItZ3JheS02O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1NCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICByaWdodDogMThweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9ucy1wcm9kdWN0LW9wdGlvbnM7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LW1lYXN1cmVtZW50LXVuaXQoJG5hbWU6ICcubWVhc3VyZW1lbnQtdW5pdCwgLnBhY2thZ2luZy11bml0JykgeyAvLyBNdXN0IGJlIHJlZmFjdG9yZWRcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNyk7XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oNzUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jaG9pY2Uge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE3KSByZW0oMTYpIHJlbSgyMSk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTcpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxOHB4IDE4cHggMCAkc2V0dGluZy1jb2xvci1hbHBoYS0yLCAwIDNweCAzcHggMCAkc2V0dGluZy1jb2xvci1hbHBoYS0yO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDc7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTQpO1xuICAgICAgICAgICAgICAgIC5saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWxwaGEtNTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDMpIHJlbSgxMyk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1tZWFzdXJlbWVudC11bml0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wcm9kdWN0LXBhY2thZ2luZy1uZXctcHJpY2UoJG5hbWU6ICcucHJvZHVjdC1wYWNrYWdpbmctbmV3LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcHJvZHVjdC1wYWNrYWdpbmctbmV3LXByaWNlO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWF1dG9jb21wbGV0ZS1mb3JtIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogcmVtKDEyKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMzYpIHJlbSgxNSkgcmVtKDM4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuXG4gICAgICAgICAgICAmLS1uby1pY29uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDEwKSByZW0oMTgpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTgpIHJlbSgxOCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbGVhbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTIpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1hdXRvY29tcGxldGUtZm9ybTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1zZXQgKCRuYW1lOiAnLnByb2R1Y3Qtc2V0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYmFubmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDM4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkLXRvLWNhcnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX192YXJpYW50LWNvbmZpZ3VyYXRvciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhcmlhbnQsXG4gICAgICAgICZfX3ZhcmlhbnQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICAuY3VzdG9tLXNlbGVjdC0tcGRwLW9wdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpZGdldCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LXNldDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2plY3QtcmVxdWVzdC13aWRnZXQtcHJvamVjdC1vcmRlci1mb3JtKCRuYW1lOiAnLnByb2plY3Qtb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FkZHJlc3MtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0cy1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJvcmRlci1yaWdodCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA5MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvamVjdC1yZXF1ZXN0LXdpZGdldC1wcm9qZWN0LW9yZGVyLWZvcm0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2plY3QtcmVxdWVzdC13aWRnZXQtcHJvamVjdC1vcmRlci1wcm9kdWN0LWxpc3QoJG5hbWU6ICcucHJvamVjdC1vcmRlci1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbGFiZWwtLW5hbWUge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgICAgIGxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5xdWFudGl0eSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG5cbiAgICAgICAgICAgIC5yZW1haW5pbmctcXVhbnRpdHkge1xuICAgICAgICAgICAgICAgICYtLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS1kYW5nZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItcmVkLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9qZWN0LXJlcXVlc3Qtd2lkZ2V0LXByb2plY3Qtb3JkZXItcHJvZHVjdC1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9qZWN0LXJlcXVlc3Qtd2lkZ2V0LXByb2plY3QtcmVxdWVzdC1mb3JtKCRuYW1lOiAnLnByb2plY3QtcmVxdWVzdC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWRkcmVzcy1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3RzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyLXJpZ2h0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDkwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9qZWN0LXJlcXVlc3Qtd2lkZ2V0LXByb2plY3QtcmVxdWVzdC1mb3JtKCk7XG5cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2plY3QtcmVxdWVzdC13aWRnZXQtcHJvamVjdC1yZXF1ZXN0LXByb2R1Y3QtbGlzdCgkbmFtZTogJy5wcm9qZWN0LXJlcXVlc3QtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgLmxpc3QtLWNoZWNrYm94IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSg0MDApO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19sYWJlbC0tbmFtZSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9qZWN0LXJlcXVlc3Qtd2lkZ2V0LXByb2plY3QtcmVxdWVzdC1wcm9kdWN0LWxpc3QoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZmlsZS11cGxvYWQoJG5hbWU6ICcucXVpY2stb3JkZXItZmlsZS11cGxvYWQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNykgcmVtKDIwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMC4xKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19icm93c2UtZmlsZS1pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1zZWxlY3Qge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rvd25sb2FkLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMzMpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1maWxlLXVwbG9hZDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItdGV4dC1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXRleHQtb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgcGFkZGluZzogcmVtKDE3KSByZW0oMjApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0wLjEpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItdGV4dC1vcmRlci1mb3JtO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtZmV0Y2hlcigkbmFtZTogJy5wcmljZS1mZXRjaGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYtLWlzLWxvYWRpbmcge1xuICAgICAgICAgICAgI3skbmFtZX1fX2JveCxcbiAgICAgICAgICAgICN7JG5hbWV9X19ib3g6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXctcHJpY2UtYXBwbGllZCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fYm94LFxuICAgICAgICAgICAgI3skbmFtZX1fX3Rvb2x0aXAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X190aXRsZSBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3RpbmcsXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtMjApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMjApO1xuXG4gICAgICAgICAgICAgICAgI3skbmFtZX1fX2JveDpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjayB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogcmVtKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiByZW0oLTYpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDQpIHJlbSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX3F1YW50aXR5IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X190b29sdGlwIHtcbiAgICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTU2KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtMzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcblxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg3KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4KSByZW0oMTIpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGUtY2VudGVyIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcRjExMFwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcblxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzKTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG9vbHRpcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktdG9vbHRpcDtcblxuICAgICAgICAgICAgJjpob3ZlciAjeyRuYW1lfV9fdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihhbGwpO1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNykgcmVtKDE0KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgLTUwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyMDApO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzY2NjY2NjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC02cHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLWNlbnRlciB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcmljZS1mZXRjaGVyO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uc2FsZXMtb3JkZXItdGhyZXNob2xkLWV4cGVuc2Uge1xuICAgICZfX3RleHQge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAmLS1jYXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5zYWxlcy1vcmRlci10aHJlc2hvbGQtZXhwZW5zZS1saXN0IHtcbiAgICAmLS1jYXJ0IHtcbiAgICAgICAgbWFyZ2luOiByZW0oOCkgcmVtKC0yMCkgMDtcbiAgICAgICAgcGFkZGluZzogMCByZW0oMjApIHJlbSgxNyk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uc2hvcHBpbmctbGlzdC1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDUpO1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDMwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogZncobWV3ZGl1bSk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzUpO1xuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg1MCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3LXRhYmxlICgkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3LXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oNTQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlLS1saW5rIHtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc2hvcHBpbmctbGlzdC1vdmVydmlldy10YWJsZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJ2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICdoZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICdoZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJ2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJ3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJ3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICdzZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJ3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnflNob3BVaS9zdHlsZXMvdXRpbCc7XG5cbkBpbXBvcnQgJ3V0aWxzL3Zpc2liaWxpdHknO1xuXG5AaW5jbHVkZSB1dGlsLXNwYWNpbmc7XG5AaW5jbHVkZSB1dGlsLXRleHQ7XG5AaW5jbHVkZSB1dGlsLWZsb2F0O1xuQGluY2x1ZGUgdXRpbC12aXNpYmlsaXR5O1xuIiwiLyoqXG4gKiBQcm92aWRlcyBnbG9iYWwgY2xhc3MgbmFtZXMgZm9yIHNwYWNpbmdzLlxuICovXG5AbWl4aW4gdXRpbC1zcGFjaW5nKCkge1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZycpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy10b3AnLCB0b3ApO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy1ib3R0b20nLCBib3R0b20pO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy1sZWZ0JywgbGVmdCk7XG4gICAgQGluY2x1ZGUgaGVscGVyLXNwYWNpbmcoJy5zcGFjaW5nLXJpZ2h0JywgcmlnaHQpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy14JywgbGVmdCByaWdodCk7XG4gICAgQGluY2x1ZGUgaGVscGVyLXNwYWNpbmcoJy5zcGFjaW5nLXknLCB0b3AgYm90dG9tKTtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBQcm92aWRlcyBnbG9iYWwgY2xhc3MgbmFtZXMgZm9yIHRleHQgc3R5bGluZy5cbiAqL1xuQG1peGluIHV0aWwtdGV4dCgpIHtcbiAgICAudGV4dC1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgIH1cblxuICAgIC50ZXh0LWJpZyB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICB9XG5cbiAgICAudGV4dC1sZWZ0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnRleHQtcmlnaHQge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAudGV4dC1hbHQge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgIH1cblxuICAgIC50ZXh0LXNlY29uZGFyeSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgIH1cblxuICAgIC50ZXh0LWJyZWFrIHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIHV0aWwtdGV4dC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBjbGFzcyBuYW1lIGZvciB0ZXh0IHN0eWxpbmcgd2l0aCBjb2xvciBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgcGFyYW1ldGVycy5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYWN0aW9uIFNldHMgY2xhc3MgbmFtZSBwb3N0Zml4LlxuICogQHBhcmFtIHtDb2xvcn0gJHNldHRpbmctY29sb3ItYWN0aW9uIFNldHMgY29sb3IgcHJvcGVydHkuXG4gKiBAY29udGVudCBFeHRlbmRhYmxlIG1peGluLlxuICovXG5AbWl4aW4gdXRpbC10ZXh0LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAudGV4dC0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogUHJvdmlkZXMgZ2xvYmFsIGNsYXNzIG5hbWVzIGZvciB0aGUgZWxlbWVudHMnIGZsb2F0IGFsaWdubWVudC5cbiAqL1xuQG1peGluIHV0aWwtZmxvYXQoKSB7XG4gICAgLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgIH1cblxuICAgIC5mbG9hdC1sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZsb2F0LXJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mbG9hdC1ub25lIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFByb3ZpZGVzIGdsb2JhbCBjbGFzcyBuYW1lcyBmb3IgZGlzcGxheSBiZWhhdmlvciB3aXRoIGFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBtb2RpZmllcnMuXG4gKi9cbkBtaXhpbiB1dGlsLXZpc2liaWxpdHkoKSB7XG4gICAgLmlzLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQtYSwgJGVkZ2VzLWEgaW4gJHNldHRpbmctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJGVkZ2UtbWluOiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYSk7XG4gICAgICAgICAgICAkZWRnZS1tYXg6IGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWF4KCRlZGdlcy1hKTtcblxuICAgICAgICAgICAgJi0jeyRicmVha3BvaW50LWF9LW9ubHkge1xuICAgICAgICAgICAgICAgIEBpZiAkZWRnZS1tYXggPT0gbnVsbCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkZWRnZS1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkZWRnZS1taW4sICRlZGdlLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQtYiwgJGVkZ2VzLWIgaW4gJHNldHRpbmctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgICAgIEBpZiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYikgPiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYSkge1xuICAgICAgICAgICAgICAgICAgICAkZWRnZS1taW46IGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcy1hKTtcbiAgICAgICAgICAgICAgICAgICAgJGVkZ2UtbWF4OiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1heCgkZWRnZXMtYik7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0jeyRicmVha3BvaW50LWF9LSN7JGJyZWFrcG9pbnQtYn0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGVkZ2UtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkZWRnZS1taW4sICRlZGdlLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pcy12aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICB9XG5cbiAgICAuaXMtaW52aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgIH1cblxuICAgIC5pcy1zY3JvbGxhYmxlIHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzLW5vdC1zY3JvbGxhYmxlIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtc2Nyb2xsYWJsZS14IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAuaXMtbm90LXNjcm9sbGFibGUteCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtc2Nyb2xsYWJsZS15IHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAuaXMtbm90LXNjcm9sbGFibGUteSB7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtcG9zaXRpb24tcmVsYXRpdmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIkc2V0dGluZy1zcGFjaW5nOiAoXG4gICAgYmlnZ2VzdDogMnJlbSxcbiAgICBiaWdnZXI6IDEuNXJlbSxcbiAgICBiaWc6IDFyZW0sXG4gICAgZGVmYXVsdDogMC41cmVtLFxuICAgIHNtYWxsOiAwLjI1cmVtLFxuICAgIHJlc2V0OiAwLFxuICAgIGF1dG86IGF1dG9cbik7XG4iLCJAbWl4aW4gdXRpbC12aXNpYmlsaXR5KCkge1xuICAgIC5pcy1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LWEsICRlZGdlcy1hIGluICRzZXR0aW5nLWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICRlZGdlLW1pbjogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLWEpO1xuICAgICAgICAgICAgJGVkZ2UtbWF4OiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1heCgkZWRnZXMtYSk7XG5cbiAgICAgICAgICAgICYtI3skYnJlYWtwb2ludC1hfS1vbmx5IHtcbiAgICAgICAgICAgICAgICBAaWYgJGVkZ2UtbWF4ID09IG51bGwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGVkZ2UtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLWJldHdlZW4oJGVkZ2UtbWluLCAkZWRnZS1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlYWNoICRicmVha3BvaW50LWIsICRlZGdlcy1iIGluICRzZXR0aW5nLWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICAgICBAaWYgaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLWIpID4gaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLWEpIHtcbiAgICAgICAgICAgICAgICAgICAgJGVkZ2UtbWluOiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYSk7XG4gICAgICAgICAgICAgICAgICAgICRlZGdlLW1heDogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzLWIpO1xuXG4gICAgICAgICAgICAgICAgICAgICYtI3skYnJlYWtwb2ludC1hfS0jeyRicmVha3BvaW50LWJ9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkZWRnZS1tYXggPT0gbnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLWJldHdlZW4oJGVkZ2UtbWluLCAkZWRnZS1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtdmlzaWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgfVxuXG4gICAgLmlzLWludmlzaWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICB9XG5cbiAgICAuaXMtc2Nyb2xsYWJsZSB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5pcy1ub3Qtc2Nyb2xsYWJsZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmlzLXNjcm9sbGFibGUteCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzLW5vdC1zY3JvbGxhYmxlLXgge1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmlzLXNjcm9sbGFibGUteSB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzLW5vdC1zY3JvbGxhYmxlLXkge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuXG4gICAgaHRtbCA+IHtcbiAgICAgICAgLmlzLWxvY2tlZC10YWJsZXQsXG4gICAgICAgIC5pcy1sb2NrZWQtbW9iaWxlLFxuICAgICAgICAuaXMtbG9ja2VkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuaXMtbG9ja2VkLXRhYmxldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1heCAtIDEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlzLWxvY2tlZC1tb2JpbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1tYXggLSAxKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/